2012-04-23 11 views
0

私はグリッドビューにObjectDataSourceを取り込みました。 EditItemTemplateでは、私はRowDataBoundイベントに背後にあるコードを通して取り込まれますドロップダウンリストがあります。今gridviewでdropdownlist selectedIndexを設定しました

ddStates.DataSource = snm.getStates(); 
ddStates.DataTextField = "State"; 
ddStates.DataValueField = "StateID"; 
ddStates.DataBind(); 

を、私はやりたい行の現在の値に私のドロップダウンリストの選択されたインデックスを設定しているものobjectDataSourceから取得します。 ObjectDataSourceからStateIDを取得するにはどうすればよいですか?

ありがとうございます、私はこのサークルでサークルに参加しています。

答えて

4

あなたは常にDataSource基礎となる取得する行のDataItemを使用することができます。それだけです

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit)) 
    { 
     // if this doesn't work, use the debugger to get the type of e.Row.DataItem 
     DataRow row = ((DataRowView)e.Row.DataItem).Row; 
     int StateID = row.Field<int>("StateID"); 
     var ddStates = (DropDownList)e.Row.FindControl("ddStates"); 
     ddStates.DataSource = snm.getStates(); 
     ddStates.DataTextField = "State"; 
     ddStates.DataValueField = "StateID"; 
     ddStates.DataBind(); 
     ddStates.SelectedValue = StateID.ToString(); 
    } 
} 
+0

を!それは動作します!あまりにもありがとう、私は情報をGoogleにしようと私の頭を叩いていた! – Limey

関連する問題