2012-01-12 5 views
0

データグリッドテンプレートフィールドにドロップダウンリストコントロールがあります。 SelectedIndexChangedイベントでは、送信側オブジェクトが入っている行への参照を作成するために、送信側オブジェクトの位置を取得したいだけです。Googleで見つけたのは、比較するDataGridの各行をループする方法です送信者のクライアントIDに実際に選択された行かどうかを確認します。なぜ、送信側オブジェクトの位置を取得し、それを使ってそのグリッドビューローのインスタンスを作成するだけのことができないのですか?そして、なぜ以下のことはできないのですか?Gridviewテンプレートフィールドの送信者コントロールの位置の取得

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = (GridViewRow)GridView1.SelectedRow; 
    var store = row.Cells[0].Text; //I get the Object reference not set to an instance of an object error here 
} 

何か不足していますか?

答えて

2

senderはDropDownListです。そのNamingContainerGridViewRowです。これはプロパティーRowIndexを持っています。私はこれ(または行)があなたが望むものであると仮定します。両方ともです:

var row = (GridViewRow)((Control)sender).NamingContainer; 
var rowIndex = row.RowIndex; 
+0

です。ありがとう! – jmease

関連する問題