【发布时间】:2014-08-01 22:48:06
【问题描述】:
我有一个非常奇怪的问题,我只是不明白。我有一个内置在 jquery 模式中的 asp.net 转发器控件。
控件的代码在这里。
<div id="dialog" style="display:none">
<asp:Repeater id="myrepeater" runat="server" >
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtAnswer" TextMode="MultiLine" Columns="50" Rows="4" runat="server" />
</ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:Repeater>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" style = "display:none" OnClick="Submit1" OnClientClick="return ValidateInput()" />
然后我从 asp.net vb.net 代码后面的方法调用 jquery/javascript PopupCenter。
function PopupCenter() {
$(function () {
$("#dialog").dialog({
title: "Questions and answers",
width: 1200,
height: 750,
buttons: {
Ok: function () {
$("[id*=Button1]").click();
},
Close: function () {
$(this).dialog('close');
}
}
});
});
}
一切正常。模式与文本框一起出现。我已将我的 asp.net 按钮绑定到名为 Submit1 的回发事件。在成功触发的代码中,我然后执行此操作...
Protected Sub Submit1(ByVal sender As Object, ByVal e As System.EventArgs)
For i = 0 To myrepeater.Items.Count - 1
Dim dynTxtAnswer As TextBox = DirectCast(qtaRepeater.Items(i).FindControl("txtAnswer"), TextBox)
Next
End Sub
所以在上面的 for 循环中,我期望的是转发器中文本框的文本值。我可以访问文本框。只是它声明一个空字符串而不是字符串值。所以整体完全难住了。我想知道是否有人知道为什么会发生这种情况。
谢谢。
【问题讨论】:
-
在
$("#dialog").dialog({方法中添加appendTo: "form"属性 -
您能否描述得更详细一些。到目前为止感谢您的建议。
-
appendTo 是对话框功能的一个属性,它仍然不起作用,然后参考 que stackoverflow.com/q/757232/3087450 它可能对你有用
-
问题是我可以提出回发。我什至可以获取文本框并在事件背后的代码中循环它们。这样回发就完成了。我只是无法获得这些值。
标签: javascript jquery asp.net vb.net