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

如何单独更新GridView行并访问每行的payee字段

实现行级payee字段访问/更新的方案

直接操作绑定数据源(最简单无额外改造)

你当前使用的DataTable本身原生支持行级字段读写,不需要修改现有绑定逻辑,直接操作数据源即可:

// 遍历所有行读写payee字段
foreach (DataRow row in dt.Rows)
{
    // 读取payee
    string currentPayee = row["payee"].ToString();
    // 更新payee
    row["payee"] = "新收款人名称";
}
// 修改完成后重新绑定表格刷新前端展示
transactions.DataSource = dt;
transactions.DataBind();

支持单条行操作(点击行按钮修改对应payee)

如果你的transactions是GridView控件,可通过配置行主键实现指定行的精准操作:

  1. 先在前端控件代码中添加主键配置,以及可选的操作按钮:
<asp:GridView ID="transactions" runat="server" DataKeyNames="transaction_id" OnRowDataBound="transactions_RowDataBound">
    <Columns>
        <asp:BoundField DataField="payee" HeaderText="收款人" />
        <!-- 操作按钮列 -->
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="btnModifyPayee" runat="server" Text="修改收款人" OnClick="btnModifyPayee_Click" 
                    CommandArgument='<%# Eval("transaction_id") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

注:DataKeyNames填你的交易表唯一主键字段名,示例中为transaction_id

  1. 后端添加按钮点击事件逻辑,精准操作对应行的payee字段:
protected void btnModifyPayee_Click(object sender, EventArgs e)
{
    Button triggerBtn = sender as Button;
    string targetTransactionId = triggerBtn.CommandArgument.ToString();
    // 从数据源筛选目标行
    DataRow[] targetRows = dt.Select($"transaction_id = '{targetTransactionId}'");
    if (targetRows.Length > 0)
    {
        // 读写payee字段
        string oldPayee = targetRows[0]["payee"].ToString();
        targetRows[0]["payee"] = "修改后的收款人名称";
        // 刷新表格
        transactions.DataSource = dt;
        transactions.DataBind();
    }
}

前端JS直接访问payee字段

如果需要在前端脚本中直接读取每行的payee值,可通过RowDataBound事件注入自定义属性:

protected void transactions_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRowView rowData = e.Row.DataItem as DataRowView;
        // 给行DOM添加自定义属性存储payee和主键
        e.Row.Attributes["data-payee"] = rowData["payee"].ToString();
        e.Row.Attributes["data-transaction-id"] = rowData["transaction_id"].ToString();
    }
}

前端JS读取示例:

// 点击行弹出对应收款人
document.querySelectorAll('#transactions tr[data-payee]').forEach(row => {
    row.addEventListener('click', () => {
        alert('当前行收款人:' + row.dataset.payee);
    });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:09:03