将文本框值分配给同一页面上的模式框

时间:2012-04-24 02:35:58

标签: asp.net vb.net button

如何在模态框上分配文本框值后获取代码隐藏的文本框值?

这就是模式框在页面上的显示方式:

<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上分配值,我通过基于LinkBut​​ton点击的代码隐藏将一个Javascript函数附加到Gridview上的LinkBut​​ton(此处未显示的代码):

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值。怎么做?非常感谢你。

2 个答案:

答案 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过去曾给我带来这样的问题。