关于DataGrid嵌套的事件问题?

来源:百度知道 编辑:UC知道 时间:2024/05/18 03:58:28
我用两个DataGrid嵌套来操作两个分类表。

DataGrid1为父级,DataGrid2为子级。DataGrid2中有个编辑按钮,当点击该按钮时,如何获取当前DataGrid2所在的行的主键值?
我用DataGrid1.DataKeys[e.Item.ItemIndex].ToString()不行啊!晕了。
令人哭笑不得的是,程序竟然把DataGrid2中编辑按钮所在行的索引值当成了DataGrid1.DataKeys[e.Item.ItemIndex].ToString()值,更晕了!
我的代码如下:
//子控件编辑
protected void DataGrid2_EditCommand(object sender, DataGridCommandEventArgs e)
{
DataGrid DataGrid2 = (DataGrid)sender;
string sql = "select * from xiaoleibiao where x_did='" + DataGrid1.DataKeys[e.Item.ItemIndex].ToString() + "'";

DataGrid2.EditItemIndex = e.Item.ItemIndex;
BindDataGrid2(DataGrid2, sql);
}

请师傅们指点迷津,谢谢了!

首先设置该button的CommandName 为button1
if (e.CommandName == "button1")
{
int index = e.Item.ItemIndex;
string text= ((Button)this.MyDataGrid.Items[index].Cells[i].Controls[j]).Text.Trim();
}
Cells :表示 Table 控件的行的单元格集合
Controls :它包含数据列表控件中的子控件的集合。

?你想获取的是那个表的一行?
用DataGrid2.DataKeys[e.Item.ItemIndex].ToString()不就可以了么?
而且没太看明白,你是将DataGrid2作为DataGrid1一个Item里的一个控件来嵌套的么?