您的位置:首页 > 其它

如何取GridView中隐藏列的值

2009-07-09 17:13 197 查看
最近在做一个项目时,有一个要求是选择GRIDVIEW列表中的项(通过CHECKBOX),然后删除所选择的数据

代码如下:

/// <summary>
/// 摘要:删除单据明细列表中选择的明细信息
/// 创建人:贺振军
/// 创建日期:2009.07.09
/// </summary>
private void DelDjMx()
{
foreach (GridViewRow row in this.gvordermx.Rows)
{
CheckBox chk = (CheckBox)row.Cells[0].FindControl("chkrow");

if (chk.Checked == true)
{
//删除临时表中的数据
string strpk = row.Cells[1].Text

ordermx.Table_Dele_Temp(strpk);

}
}

this.gvordermx.DataSource = ordermx.TempTabl;

this.gvordermx.DataBind();
}

在运行时发现因为第二列我做成隐藏列,所以使用 row.Cells[1].Text 永远取到的都是空值(原来VS2003可能可以取到,但VS2008,VS2005不能取),经过测试可以将这一列设置为关键字列即 DataKey = "XH",然后将此列隐藏即可,列值就可以通过下面的代码即可取得。

/// <summary>
/// 摘要:删除单据明细列表中选择的明细信息
/// 创建人:贺振军
/// 创建日期:2009.07.09
/// </summary>
private void DelDjMx()
{
foreach (GridViewRow row in this.gvordermx.Rows)
{
CheckBox chk = (CheckBox)row.Cells[0].FindControl("chkrow");

if (chk.Checked == true)
{
//删除临时表中的数据
string strpk = gvordermx.DataKeys[row.RowIndex].Value.ToString();

ordermx.Table_Dele_Temp(strpk);

}
}

this.gvordermx.DataSource = ordermx.TempTabl;

this.gvordermx.DataBind();
}

特此记录一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: