在更新面板中刷新gridview

时间:2013-10-29 12:42:04

标签: c# asp.net asp.net-ajax updatepanel

我有一个更新panel.it内部的页面。它包含两个gridview,它们也在更新panels.im绑定它们在页面加载里面!ispostback以及代码的其他部分。当我只绑定第一个网格它工作正常但是当我绑定第二个网格时,它刷新第一个并且它没有显示数据。这是更新面板使用不当或任何其他问题的问题。我如何在这里使用触发器。

我的代码如下..

<asp:UpdatePanel ID="updgrd1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" Width="85%"ShowHeaderWhenEmpty="true"EmptyDataText="No Records Found" AutoGenerateColumns="false"OnRowCancelingEdit="GridView1_RowCancelingEdit"OnRowEditing="G dView1_RowEditing">
<Columns>
//my code here
 </Columns>
 </asp:GridView>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnUpdate" EventName="Click" />

</Triggers>
</asp:UpdatePanel>


 <asp:UpdatePanel ID="updgrd2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
 <asp:GridView ID="GridView2" runat="server" Width="85%" ShowHeaderWhenEmpty="true"  AutoGenerateColumns="false" EmptyDataText="No Records Found">
<Columns>
 //my code here
 </Columns>
 </asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnUpdate" EventName="Click" />
 <asp:AsyncPostBackTrigger ControlID="btnSave" EventName="Click" />
</Triggers>
 </asp:UpdatePanel>

protected void Page_Load(object sender, EventArgs e)
{
if(!ispostback)
{
LoadGrid1();
LoadGrid2();
}
}

1 个答案:

答案 0 :(得分:0)

我在这里正是在做你自己。这里我有一个文本框和一个gridview,当点击添加文本框中的任何内容时,都会添加到gridview中。

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <Triggers>
       <asp:AsyncPostBackTrigger controlid="LnkAddTrack" eventname="Click" />         
     </Triggers>  

       <ContentTemplate>
         <div id="EventTrack" >
            <asp:Label ID="lblEventTracks" runat="server" Text="Event Tracks"></asp:Label>&nbsp;
            <asp:TextBox ID="txtEventTracks" CssClass="EventTextbox" runat="server"></asp:TextBox> 
            <asp:LinkButton ID="LnkAddTrack" ClientIDMode="Static"  runat="server" OnClick="LnkAddTrack_Click">Add Track</asp:LinkButton>
            </div>   

<asp:GridView ID="dgTracks"  runat="server" >
               <Columns> 
                   <asp:TemplateField HeaderText="TrackName">
                        <ItemTemplate>                       
                            <asp:Label ID="Control" runat="server" Text='<%#   Eval("TrackName") %>'></asp:Label>                        
                        </ItemTemplate>                                        

                   </asp:TemplateField>
               </Columns>
            </asp:GridView>
       </ContentTemplate>
  </asp:UpdatePanel>

然后确保您在按钮事件中添加正确添加数据的新数据 并记得重新绑定gridview。

 protected void LnkAddTrack_Click(object sender, EventArgs e)
    {
        InsertTrack();
        DgPopTracks();
    }

如果您想查看我的Insert Track和DgPopTr​​acks活动,请询问您的任何问题 我也可以发布它们