ドロップダウンリストの値を設定する

私は私の課題にいくつか問題があります。私はこの中でデータを編集するときにGridViewのドロップダウンリストの値を設定しようとします。しかし私は友人に私の任務を送るとき、彼は間違いなく(それは彼がVisual Studio 2010を使用して)それを実行できると私に言った。私はVisual Studio 2008と2010を使用しますが、自分のコードを実行することはできません。私を助けてください。

 SqlConnection cn=new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["cn"].ToString());
protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack == false)
    {
        LoadProduct();
    }
}
public  DataSet LoadCategory()
{
    SqlDataAdapter da = new SqlDataAdapter("select * from categories", cn);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
}
private void LoadProduct()
{
    //throw new NotImplementedException();
    SqlDataAdapter da=new SqlDataAdapter("select * from products,categories where products.categoryID=categories.categoryID",cn);
    DataTable db=new DataTable();
    da.Fill(db);
    GridView1.DataSource=db;
    GridView1.DataBind();
}

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
    GridView1.EditIndex = -1;
    LoadProduct();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
    Literal ltr=GridView1.Rows[e.NewEditIndex].FindControl("Literal1") as Literal;
    string categoryname = ltr.Text;
    GridViewRow row=GridView1.Rows[e.NewEditIndex];
    LoadProduct();
    DropDownList ddl = row.Cells[3].Controls[1] as DropDownList;
    ddl.DataSource = LoadCategory().Tables[0];// when I run there is a error. "Object reference not set to an instance of an object"
    ddl.DataTextField = "categoryName";
    ddl.DataValueField = "categoryID";
    ddl.DataBind();
    ddl.Items.FindByText(categoryname).Selected = true;        
}
0
割り当て?この宿題ですか?
追加された 著者 jwiscarson,
なぜあなたはそれを実行できませんか?私達に例外を与えてください。
追加された 著者 Amy,

2 答え

これを試して

ddl.ClearSelection();
ddl.Items.FindByText(categoryname).Selected = true;
1
追加された

あなたのDDLを見つける際にこのようにすることはできませんか?

DropDownList ddl = GridView1.Rows[e.NewEditIndex].FindControl("ddl") as DropDownList;
ddl.DataSource = LoadCategory().Tables[0];
0
追加された