我们在UpdatePanel中有以下代码。
<asp:UpdatePanel
ID="UpdatePanelSearch"
runat="server"
UpdateMode="Conditional">
<ContentTemplate>
<p>Parent Search:
<asp:TextBox ID="TextBoxSearch" runat="server" Width="207px"></asp:TextBox>
<asp:Button ID="ButtonSearch" runat="server" Text="Search" />
</p>
</ContentTemplate>
</asp:UpdatePanel>
VB文件中的代码看起来像这样处理单击“搜索”按钮,因此GridView将根据输入到TextBox中的值显示数据。
GridView也在一个单独的UpdatePanel中:
Protected Sub ButtonSearch_Click(sender As Object, e As EventArgs) Handles ButtonSearch.Click
GridViewParentsSummary.DataSource = theTableAdapter.GetData(strSearchText)
End Sub
如果这是正确的做法,我们想创建一个更新GridView的触发器。
这是GridView:
<ContentTemplate>
<asp:GridView
ID="GridViewParentsSummary"
runat="server"
AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False"
DataKeyNames="ID"
PageSize="3"
>
<Columns>
<asp:BoundField
DataField="FatherName"
HeaderText="Father's Name"
SortExpression="FatherName" />
<asp:BoundField
DataField="MotherName"
HeaderText="Mother's Name"
SortExpression="MotherName" />
<asp:ButtonField
ButtonType="Button"
CommandName="Select"
Text="Select This Parent" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
您能否显示制作正确触发器以刷新GridView所需的代码?
答案 0 :(得分:1)
如果GridView
位于另一个UpdatePanel
,则还应在其他UpdatePanel
更新时更新。默认情况下,UpdatePanel.UpdateMode
属性设置为Always
,这会导致页面中的所有UpdatePanel
都刷新。
但是,这并不总是理想的行为,所以很多时候你将其更改为Conditional
,这意味着UpdatePanel
只有在触发其中一个触发器时才会刷新。在这种情况下,您需要在ButtonSearch_Click
方法中添加此行:
gridUpdatePanel.Update() 'assuming gridUpdatePanel is the UpdatePanel with the grid
有关UpdateMode
属性的更多信息,请参阅此处:
http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.updatemode.aspx