【发布时间】:2021-04-04 02:20:19
【问题描述】:
更新面板外有一个按钮,该按钮的点击事件绑定了网格视图。
网格视图位于更新面板内,并且网格视图内有一个链接按钮。
链接按钮导致完整的回帖,我在网上查看并尝试了不同的方法,但到目前为止没有运气。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<table>
<tr>
<td>
<asp:UpdatePanel ID="ContentUpdatePanel" runat="server">
<ContentTemplate>
<asp:GridView ID="gvMasterData" runat="server" AutoGenerateColumns="false" Width="200px" class="display">
<Columns>
<asp:TemplateField HeaderText="registration date" ItemStyle-Width="50">
<ItemTemplate>
<asp:Label ID="lblRegistrationDate" runat="server" Text='<%# Eval("registration_date") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="completed" ItemStyle-Width="50">
<ItemTemplate>
<asp:LinkButton Text='<%# Eval("completed") %>' ForeColor="Black" Font-Underline="false" runat="server" CommandName="Completed" CommandArgument="<%# Container.DataItemIndex %>" /> </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="pending" ItemStyle-Width="50">
<ItemTemplate>
<asp:LinkButton ID="MarkAsCompleteButton" Text='<%# Eval("pending") %>' ForeColor="Black" Font-Underline="false" runat="server" CommandName="Pending" CommandArgument="<%# Container.DataItemIndex %>" /> </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</table>
代码背后
private void gvMasterData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lb = e.Row.FindControl("MarkAsCompleteButton") as LinkButton;
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb);
}
}
【问题讨论】:
-
更新面板内的更新确实会导致表单加载命令每次触发 - 总是如此!这就是我们所说的部分回发。你确定你在这里看不到部分帖子吗?更新面板肯定会导致回发(他们总是这样做)。只是一个问题,这是一个完整的页面回帖还是部分回帖。我怀疑您看到的是回发 - 但我们总是这样做并且总是使用更新面板。主要区别在于,在这些部分回发中,您的代码只能更新/更改该窗格内的控件 - 而不是整个页面。
标签: c# asp.net updatepanel postback