2012-04-23 79 views
0

我有一个正在由ObjectDataSource填充的grideview。在EditItemTemplate中,我有被填充直通后面的代码在RowDataBound事件一个下拉列表:在gridview中设置dropdownlist selectedIndex

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

现在,我想要做的是把我的下拉列表中选择的指数的当前值的行来自objectDataSource。我如何从ObjectDataSource获取StateID?

谢谢,我一直在这个圈子上运行。

回答

4

你总是可以使用行的DataItem得到根本DataSource

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

这就是它!这样可行!非常感谢你,我正在砸我的脑袋试图谷歌的信息! – Limey 2012-04-23 20:56:05

相关问题