我在ASPX表单上有2个数据网格。当我点击datagrid#2中的记录时,我想从datagrid#1引用一个单元格。
所以,目前当我选择一个记录时,我在代码隐藏中得到了类似的东西:
protected void DataGrid_ClaimSearch_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
string LPI_ID = e.Item.Cells[7].Text;
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
完美无缺。现在,在我的第二个数据网格中,我想在第一个数据网格中引用一个单元格,所以我把它放在:
protected void DataGrid_ClaimDetail_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGridItem dgi = DataGrid_ClaimSearch.SelectedItem;
string LPIStatus = dgi.Cells[1].Text;
}
这会返回错误:
对象引用未设置为对象的实例。
突出显示行string LPIStatus = dgi.Cells[1].Text;
。
当我点击第二个数据网格时,如何在第一个数据网格中引用第一个单元格的任何想法?
答案 0 :(得分:0)
您必须在EditItemIndex
方法中为DataGrid_ClaimSearch
设置DataGrid_ClaimSearch_EditCommand
。
protected void DataGrid_ClaimSearch_EditCommand(object source, DataGridCommandEventArgs e)
{
try
{
string LPI_ID = e.Item.Cells[7].Text;
DataGrid_ClaimSearch.EditItemIndex = e.Item.ItemIndex;
Response.Write(LPI_ID);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
现在,您可以使用DataGridItem
方法访问正确的DataGrid_ClaimDetail_EditCommand
。
protected void DataGrid_ClaimDetail_EditCommand(object source, DataGridCommandEventArgs e)
{
DataGridItem dgi = DataGrid_ClaimSearch.Items[DataGrid_ClaimSearch.EditItemIndex];
string LPIStatus = dgi.Cells[1].Text;
Response.Write(LPIStatus);
}