我最近一直在使用 Facebox,它似乎与 asp.net 不兼容。在这个论坛的帮助下,我解决了从文本框中检索值以及从面部框内的按钮捕获事件的问题。
现在,我偶然发现了另一个奇怪的问题。如果我用现有值填充面部框内的文本框,在打开面部框之前,打开面部框,更改一些值,点击从文本框中获取新值的按钮,获取的值是文本框的值在打开 Facebook 之前填充。
这是我的 .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>
然后在我的代码隐藏中,我在 facebox 中设置文本框(页面加载时),如下所示:(_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 以某种方式否认要更改的文本框。我不知道,所以我希望这里有人知道更多关于facebox,甚至可能解决这个问题......