最近、Facebox を使っていますが、asp.net との相性が悪いようです。このフォーラムの助けを借りて、テキストボックスから値を取得する問題と、フェイスボックス内のボタンからイベントをキャプチャする問題を解決しました。
さて、私は別の奇妙な問題に出くわしました。フェイスボックス内のテキストボックスに既存の値を入力する場合、フェイスボックスを開く前にフェイスボックスを開き、値の一部を変更し、テキストボックスから新しい値を取得するボタンを押します。取得される値はテキストボックスの値ですfacebox が開かれる前にデータが取り込まれました。
これは私の .aspx ページのコードです:
<a href="#facebox" rel="facebox">open facebox</a>
<div id="facebox" style="display: none;">
<p>
1: <span><asp:TextBox ID="txt_reason1" runat="server" Width="200" TextMode="MultiLine"
Rows="2"></asp:TextBox></span></p>
<p>
2: <span><asp:TextBox ID="txt_reason2" runat="server" Width="200" TextMode="MultiLine"
Rows="2"></asp:TextBox></span></p>
<p>
3: <span><asp:TextBox ID="txt_reason3" runat="server" Width="200" TextMode="MultiLine"
Rows="2"></asp:TextBox></span></p>
<asp:Button ID="Button2" runat="server" Text="Gem" OnClick="Button2_Click" />
</div>
次に、コード ビハインドで、(ページの読み込み時に) テキスト ボックスを次のようにフェイス ボックスに設定します: (_goal はビジネス オブジェクトです)
txt_reason1.Text = _goal.GoalReason1;
txt_reason2.Text = _goal.GoalReason2;
txt_reason3.Text = _goal.GoalReason3;
次に、.aspx のいくつかの値を変更し、イベント ハンドラーで次のコードを使用してボタンを押します。
_goal.GoalReason1 = txt_reason1.Text;
_goal.GoalReason2 = txt_reason2.Text;
_goal.GoalReason3 = txt_reason3.Text;
bool res = GoalManager.UpdateGoal(_goal);
テキストボックスの値でいくつかのオブジェクトプロパティを設定し、それでデータベースを更新するだけです。しかし、テキストボックスの値は変更されておらず、デバッガーを使用して確認しました。私の推測では、facebox が何らかの形でテキストボックスの変更を拒否していると思われます。わからないので、ここの誰かがフェイスボックスについてもっと知っていて、おそらくこの問題を解決してくれることを願っていました...