当用户单击UpdatePanel内的按钮时触发刷新DataView

时间:2012-09-23 14:47:16

标签: asp.net vb.net gridview triggers updatepanel

我们在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所需的代码?

1 个答案:

答案 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