我有一个带有一堆文本框(街道,数字,城市,邮政编码等)和一个AJAX模态弹出扩展器的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
问题是,虽然此代码隐藏了模态弹出窗口,但它不会填充地址格式。
如何从模态弹出窗口中填写表单?
答案 0 :(得分: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中的一个LinkButtons时,模态弹出窗口关闭,地址表单被填充