如何在模态框上分配文本框值后获取代码隐藏的文本框值?
这就是模式框在页面上的显示方式:
<div id="dialog-form" title="Modal Box">
<asp:TextBox ID="Textbox1" runat="server" ReadOnly="True">
<asp:Button ID="Save_Button" runat="server" Text="Save"></asp:Button>
</div>
为了在Textbox1
上分配值,我通过基于LinkButton点击的代码隐藏将一个Javascript函数附加到Gridview上的LinkButton(此处未显示的代码):
Dim myLinkButton As LinkButton
For i As Integer = 0 To GV1.Rows.Count - 1
myLinkButton = DirectCast(GV1.Rows(i).Cells(1).FindControl("LinkButton"), LinkButton)
myLinkButton.Attributes.Add("onclick", "shopModalPopup('" + .Rows(i).Cells(0).Text & "'); return false;")
Next
Rows(i).Cells(0)
是Gridview上的第一列,它是“ID
”。点击链接按钮时,ID
将被分配给Textbox1
。
Javascript代码与Gridview代码在同一页面上:
<script>
var grid_modal_options = {
height: 450,
width: 550,
modal: true
};
function shopModalPopup(id) {
var DataField = id;
grid_modal_options.open = function () {
$('#dialog-form #Textbox1').val(DataField);
};
$("#dialog-form").dialog(grid_modal_options);
$("#dialog-form").parent().appendTo('form:first');
}
</script>
当我单击模态框上的“保存”按钮时,Textbox1
上的值无法捕获代码隐藏。它总是返回null值。怎么做?非常感谢你。
答案 0 :(得分:1)
请阅读本文
http://www.codeproject.com/Articles/37090/JQuery-UI-Dialog-with-ASP-NET-empty-post-values
我认为它可能会帮助你解决问题可能是对话框的div移动到你可以通过使用上面的引用解决它的表单之外,或者只是定义另一个隐藏的输入并用相同的值更新隐藏的输入
$('#dialog-form #Textbox1').val(DataField);
$('hiddenfield').val(DataField);
然后从隐藏字段中读取值
不确定它是否是最佳答案,但可以作为快速解决方法
答案 1 :(得分:0)
没有Readonly="true"
会有效吗?如果是,请在<asp:textbox>
中,将Readonly="true"
替换为Enabled="false"
。
我没有对此进行过测试,但我回忆起Readonly
过去曾给我带来这样的问题。