从另一个数据网格引用数据网格中的选定记录

时间:2017-01-27 21:14:55

标签: c# asp.net datagrid

我在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;

当我点击第二个数据网格时,如何在第一个数据网格中引用第一个单元格的任何想法?

1 个答案:

答案 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);
}