gridview绑定dropdownlist,给dropdownlist赋值,网上都是这样的代码protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
         DropDownList goodsType = (DropDownList)e.Row.FindControl("DropDownList1");
         if (goodsType != null)
            {
                con = new SqlConnection(ConfigurationManager.ConnectionStrings["TestProviderConnectionString"].ConnectionString);
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter("select * from goodsType",con);
                da.Fill(ds,"gt");
                goodsType.DataSource = ds.Tables["gt"];
                goodsType.DataTextField = "goodsType";
                goodsType.DataValueField = "goodsId";
                goodsType.DataBind();
           }
        }
    }但是每列绑定的时候都读取一遍数据库,我感觉很慢,有没有好的办法啊

解决方案 »

  1.   

    每行绑定的时候都读取一遍数据库,这也太慢了,然后我把他放到在绑定gridview时,但是问题有出来了。我在RowDataBound时要给 DropDownList 赋值goodsType  = (DropDownList)e.Row.FindControl("goodsType ");
                    goodsType .SelectedValue = ((HiddenField)e.Row.FindControl("hfDispFormat")).Value;
    因为还没绑定了,所以就显示不出来
      

  2.   

    难道必须放在RowDataBound里面绑定么。每次都得读取一遍数据库生成dataset,大家都是怎么做的啊