我在UpdatePanel中有一个GridView.在模板字段中有一个我用来标记项目的按钮.从功能上讲,这可以很好地工作,但该按钮始终触发整页回发,而不是部分回发.如何让按钮触发部分回发?

<asp:ScriptManager ID="ContentScriptManager" runat="server" />
<asp:UpdatePanel ID="ContentUpdatePanel" runat="server" ChildrenAsTriggers="true">
    <ContentTemplate>
        <asp:GridView ID="OrderGrid" runat="server" AllowPaging="false" AllowSorting="false"
            AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:LinkButton ID="MarkAsCompleteButton" runat="server" Text="MarkAsComplete"
                            CommandName="MarkAsComplete" CommandArgument='<%# Eval("Id") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Name" HeaderText="Name" />
                <asp:BoundField DataField="LoadDate" HeaderText="Load Date" />
                <asp:BoundField DataField="EmployeeCutOffDate" HeaderText="Cut Off Date" />
                <asp:BoundField DataField="IsComplete" HeaderText="Is Completed" />
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

推荐答案

你需要将每个链接按钮注册为AsyncPostBackTrigger.在GridView中绑定每一行后,需要搜索LinkButton并通过代码隐藏注册它,如下所示:

protected void OrderGrid_RowDataBound(object sender, GridViewRowEventArgs e)  
{  
   LinkButton lb = e.Row.FindControl("MarkAsCompleteButton") as LinkButton;  
   ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb);  
}  

这还需要为LinkButton设置ClientIDMode="AutoID",如here所述(感谢Răzvan Panda指出这一点).

Asp.net相关问答推荐

在控制器中通过依赖项注入使用ASP.NET变量值时,不会持久化

Swashbuckle 通过 .NET 应用程序中的 XML 注释使用格式标识符

如何格式化搜索字符串以从 Razor 页表中的多个列返回部分搜索字符串?

在具有多个项目(API/服务/数据等)的解决方案中编写 SignalR 服务的最佳方法是什么?

Web API Queryable - 如何应用 AutoMapper?

创建一个供 ASP.NET 应用程序中的所有线程使用的静态 Regex 对象是否有效?

在 DataTextField 中组合两个字段.这可能吗?

OnCheckedChanged 事件未触发

Web api 不支持 POST 方法

如何在txt文件中保存异常?

HttpWebRequest 未通过凭据

我应该如何在类和应用层之间传递数据?

什么时候不应该使用 Web 服务?

错误:无法在 Web 服务器上开始调试... ASP.NET 4.0

如何将枚举类型绑定到 DropDownList?

如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?

SignalR /signalr/hubs 404 未找到

如何在 GridView 中隐藏 TemplateField 列

会员生成密码 仅限字母数字密码?

Page.IsPostBack 和 Page.IsCallBack 有什么区别?