2017-01-27 5 views
0

私は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); 
    }   
} 
完璧に動作します

:私はレコードを選択するとき

そうでは、現在、私はコードビハインドでこのような何かを持っています。さて、私の第二のデータグリッドで、私は最初の1でセルを参照したいので、私はこれを置く:

protected void DataGrid_ClaimDetail_EditCommand(object source, 
System.Web.UI.WebControls.DataGridCommandEventArgs e) 
{ 
    DataGridItem dgi = DataGrid_ClaimSearch.SelectedItem; 
    string LPIStatus = dgi.Cells[1].Text; 
} 

これはエラーを返します:

Object reference not set to an instance of an object.

ラインstring LPIStatus = dgi.Cells[1].Text;が強調表示されています。

私の2番目のデータグリッドをクリックすると、最初のデータグリッドの最初のセルをどのように参照できますか?

+0

try 'string LPIStatus = dgi.Cells [1] .ToString();' – Makishima

答えて

0

DataGrid_ClaimSearch_EditCommandメソッドでDataGrid_ClaimSearchEditItemIndexを設定する必要があります。

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

今、あなたはDataGrid_ClaimDetail_EditCommand方法で正しいDataGridItemにアクセスすることができます。

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); 
} 
関連する問題