2

我有一个带有一堆文本框(街道、号码、城市、邮政编码等)和一个 AJAX modal-popup-extender 的 asp.net 地址表单。

当按下按钮时,会显示一个地址簿(在模式弹出窗口中),用户可以在其中搜索和选择他的注册地址之一。这个列表是使用 GridView 实现的,效果很好。每行都有一个链接按钮,如下所示:

<asp:LinkButton ID="AddressNameLinkButton" runat="server"
                CausesValidation="false"
                CommandArgument='<%# Container.DataItem("ADDRESS_ID") %>'
                CommandName="Select"
                Text='<%# Eval("ADDRESS_NAME")%>' />

按下按钮时,此代码隐藏运行:

Protected Sub AddressGridView_RowCommand(...) Handles AddressGridView.RowCommand
    Dim ADDRESS_ID As Long = e.CommandArgument
    If e.CommandName.CompareTo("Select") = 0 Then
        'Some code that retrieves the information 
        'of the selected address goes here.
        CityTextBox.Text = City
        PostalCodeTextBox.Text = PostalCode
        'Etc. Etc.
        SearchModalPopupExtender.Hide()
    End If
End Sub

问题是,虽然这段代码隐藏了模式弹出窗口,但它并没有填写地址表单。

如何从模式弹出窗口填写表格?

4

1 回答 1

1

问题是模型弹出窗口中的 GridView 位于 UpdatePanel 内(感谢 nunespascal 指出这一点)。

为了解决这个问题,我添加了以下代码:

Protected Sub AddressGridView_RowDataBound(...) Handles AddressGridView.RowDataBound
    Dim AddressNameLinkButton As LinkButton = e.Row.FindControl("AddressNameLinkButton")
    ScriptManager.GetCurrent(Page).RegisterPostBackControl(AddressNameLinkButton)
End Sub

现在,当我按下 GridView 中的一个 LinkBut​​tons 时,模式弹出窗口将关闭并填充地址表单

于 2012-12-11T23:53:25.557 回答