0

我有一个在更新面板内的页面。它包含两个网格视图,它们也在更新面板内。我将它们绑定在 !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();
}
}
4

1 回答 1

0

在这里,我正在做你正在做的事情。在这里,我有一个文本框和一个网格视图,当单击添加时,文本框中的任何内容都会添加到网格视图中。

 <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 事件,我也可以为您发布它们

于 2013-10-29T13:48:32.240 回答