0

ObjectDataSourceによって入力されているgrideviewがあります。EditItemTemplateには、RowDataBoundイベントのコードビハインドを介して入力されるドロップダウンリストがあります。

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

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

おかげで、私はこれで輪になって走っています。

4

1 に答える 1

5

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();
    }
}
于 2012-04-23T20:43:16.113 に答える