You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET与C#中将EDIT和DELETE列移至Remarks列之后

解决GridView编辑/删除按钮列移至Remarks列之后的问题

方法1:手动定义所有列(推荐)

你当前的GridView是自动生成列模式,CommandField会默认排在最左侧。关闭自动生成列,手动按顺序列出所有数据列,最后放置编辑/删除按钮列,就能精准控制布局。

修改前端GridView代码:

<asp:GridView ID="grdRDaily" runat="server" Visible="false" Width="356px" 
    CssClass="table table-bordered" HorizontalAlign="Center"
    AutoGenerateColumns="false"> <%-- 关闭自动生成列 --%>
    <Columns>
        <%-- 按需求顺序添加所有数据列,替换为实际列名和标题 --%>
        <asp:BoundField DataField="列名1" HeaderText="列标题1" />
        <asp:BoundField DataField="列名2" HeaderText="列标题2" />
        <%-- ... 其他数据列依次添加 ... --%>
        <asp:BoundField DataField="Remarks" HeaderText="Remarks" /> <%-- Remarks列放在按钮前 --%>
        <%-- 最后放置编辑删除按钮列 --%>
        <asp:CommandField ShowEditButton="true" ShowDeleteButton="true" />
    </Columns>
</asp:GridView>

方法2:DataBind后动态调整列顺序

如果不想手动定义所有列,可以在后端数据绑定完成后,把CommandField列移到最后位置。

修改后端GetDailySummary方法,在grdRDaily.DataBind();之后添加以下代码:

// 定位到包含编辑/删除按钮的CommandField列
CommandField commandColumn = null;
foreach (DataControlField col in grdRDaily.Columns)
{
    if (col is CommandField cmdCol && cmdCol.ShowEditButton && cmdCol.ShowDeleteButton)
    {
        commandColumn = cmdCol;
        break;
    }
}

// 将找到的按钮列移至最后
if (commandColumn != null)
{
    grdRDaily.Columns.Remove(commandColumn);
    grdRDaily.Columns.Add(commandColumn);
}

重要提醒:修复SQL注入风险

你当前拼接SQL字符串的写法存在严重的SQL注入漏洞,建议改为参数化查询:

sqlComm = new SqlCommand("EXEC psp_RPTDaily @DATA, @FROMDATE, @TODATE", conn);
sqlComm.Parameters.AddWithValue("@DATA", dataReport.SelectedValue.ToString());
sqlComm.Parameters.AddWithValue("@FROMDATE", txtStartDate.Text);
sqlComm.Parameters.AddWithValue("@TODATE", txtEndDate.Text);

内容的提问来源于stack exchange,提问作者Mac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:17:39