我有一个非常奇怪的问题,我只是不明白。我有一个asp.net转发器控件,它内置于jquery模式中。
控件的代码在这里。
<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循环中,我期待的是转发器中文本框的Text值。我可以访问文本框。只是它声明一个空字符串而不是字符串值。所以总体上完全难倒。我想知道是否有人知道为什么会这样。
谢谢。
答案 0 :(得分:0)
尝试下面的代码
在OK模态对话框中添加代码
Ok: function ()
{
__doPostBack("<%= Button1.UniqueID %>", "");
}
答案 1 :(得分:0)
请尝试以下代码:
Dim textString as String = "Null"
Dim txtBoxValue As TextBox
Dim i As Integer = 0
For Each item In myrepeater.Items
txtBoxValue = item.FindControl("txtAnswer")
If Not IsNothing(txtBoxValue) Then
i += 1
textString = txtBoxValue.Text
Else
End If
Next
让我知道它是否适合你。
答案 2 :(得分:0)
我无法解决问题所以我设法解决了问题。
我创建了一个隐藏的asp.net字段
<input id="Hidden1" type="hidden" runat="server" />
然后我使用Jquery拾取了转发器文本框,并将值捆绑到一个javascript数组中,并使用|像这样...
var cntrlAnswer = $('.cssAnswer')
for (var i = 0; i < cntrlAnswer.length; i++) {
repeaterTxtVals[i] = cntrlAnswer[i].value}
document.getElementById('<%= Hidden1.ClientID %>').value = repeaterTxtVals.join('|');
然后在代码隐藏事件处理程序中,我把它拿起并用它做了一些事情。
Dim strAnswers As String() = Hidden1.Value.Split("|".ToCharArray())
感谢我给予的任何提示,他们帮助了很多。