我在Panel中有一个带有Repeater的UpdatePanel。通过单击转发器的其中一个单元格,将根据在LinkButton中传递的转发器参数显示2个详细视图(Gridview,Formview - UpdatePanel中的每个)。
当Gridview显示正常时,FormView不是在更新其UpdatePanel时。所有的DataBinding应该正常运行,因为我已经运行了一年的应用程序 - 但没有UpdatePanels!我是第一次使用它们而且必须遗漏一些东西。
<asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Always">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" ScrollBars="Vertical" Height="600px">
<asp:Repeater runat="server" id="RepeaterKalendar">
<ItemTemplate>
...
<asp:LinkButton ID="ButtonSelect" runat="server" CommandArgument = '<%# Eval("date") %>' Text='<%# Bind("TAG") %>' OnClick="GetDetails"/>
...
</ItemTemplate>
</asp:Repeater>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel_Grid" UpdateMode="Conditional" runat="Server">
<ContentTemplate>
<asp:GridView runat="server" ID="Grid_Details" OnSelectedIndexChanged="IndexChanged">
...
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpdatePanel_Form" UpdateMode="Conditional">
<ContentTemplate>
<asp:FormView runat="server" ID="Form_Details" DefaultMode="Edit"">
<EditItemTemplate>
...
</EditItemTemplate>
</asp:FormView>
</ContentTemplate>
</asp:UpdatePanel>
LinkButton的代码隐藏点击
protected void GetDetails(object sender, EventArgs e)
{
LinkButton LinkButton1 = (sender as LinkButton);
string commandArgument = LinkButton1.CommandArgument;
BuildDetailsViewReport(Convert.ToDateTime(commandArgument));
BuildDetailsViewList(Convert.ToDateTime(commandArgument));
UpdatePanel_Grid.Update();
UpdatePanel_Form.Update();
}
UpdatePanel_Form.Update()不更新FormView,甚至导致GridView未更新。如果我从代码中删除该命令,则GridView会正确上传。
感谢任何帮助。 马丁