0

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

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

<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无法捕获代码隐藏上的值。它总是返回空值。怎么做?非常感谢你。

4

2 回答 2

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);

然后从隐藏字段中读取值

不确定它是否是最好的答案,但可以作为快速修复

于 2012-04-24T03:02:13.537 回答
0

没有它可以工作Readonly="true"吗?如果是这样,在您的<asp:textbox>,替换Readonly="true"Enabled="false"

我没有测试过这个,但我记得Readonly过去给我造成了这样的问题。

于 2012-04-24T03:04:44.260 回答