日期:2014-05-18  浏览次数:20425 次

gridview中的编辑与RowDataBound中如何取得当前关键字的值?急啊!~~大侠们帮个忙
想根据GridView中的关键字(id)在编辑中的DropDownList中查找在另一个表中的相关值,向各位大侠请教!

我现在只能把这个id值显示出来在GridView中,然后在后台用
e.Row.Cells[0].Text这种方式取出来再查询,但我现在不想显示id,但好像隐藏列后不能取得相关值,有做个的指点一下呢,谢谢了

------解决方案--------------------
设置datakey
<asp:gridview id= "CustomersGridView " datakeynames= "id "

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{

if(e.Row.RowType == DataControlRowType.DataRow)
{
// 取id
string id = CustomersGridView.DataKeys[e.Item.ItemIndex].Value.ToString()

}

}



------解决方案--------------------
但好像隐藏列后不能取得相关值

ASP.NET DEMO 7: 解决无法获取 GridView 隐藏列值问题
http://www.cnblogs.com/Jinglecat/category/52622.html
------解决方案--------------------
可以把关键字的值放在隐藏控件中
------解决方案--------------------
if(e.Row.RowType == DataControlRowType.DataRow)
{
string id = GridView1.DataKeys[e.Item.ItemIndex].Value.ToString()
}
------解决方案--------------------
string id = GridView1.DataKeys[e.Item.ItemIndex].Value.ToString()
------解决方案--------------------
this.GridView1.DataKeyNames = new string[] { "mm_ID " };

GridView1.DataBind();
------解决方案--------------------
先取得行,在去找DropDownList1
------解决方案--------------------
DropDownList ddl=(DropDownList)GridView1.Row.cells[].FindControl( "DropDownList1 ");