我的GridView控件嵌套在DataList控件中,DataList控件有一个绑定列"Quarter",其中的GridView控件的数据源要以"Quarter"的值为参数来检索数据.
如何设置该数据源的参数部分?

解决方案 »

  1.   

    DataList控件有一个绑定列"Quarter"  ,应该是DataList中的模板列中的控件吧。假如是Label控件     
         if (e.Item.ItemType == ListItemType.Item)
                {
                    string quarter = ((Label)e.Item.FindControl("Quarter")).Text;
                    DataSet ds = new BLL.Class().Function(quarter);
                    if (ds != null)
                    {
                        GridView gv = (GridView)e.Item.FindControl("GridView1");
                        gv.DataSource = ds;
                        gv.DataBind();
                    }
                }
      

  2.   

    supremeholy,你的方法我一会再试.这里我自己也想到一种方法,经测试后可行:
    1,GridView1的DataSource='<%# GetDataSource((int)((DataRowView)Container.DataItem)["Quarter"]) %>'
    2,通过GetDataSource方法,根据"Quarter"的值,为GridView1的DataSource重新设置参数,如下:
        protected SqlDataSource GetDataSource(Int32 Parameters)
        {
            SqlDataSource sds = DataTable;//DataTable为之前配置好的但参数不能满足需要的数据源控件
            if(sds.SelectParameters.Count==2) sds.SelectParameters.RemoveAt(1);
            sds.SelectParameters.Add("quarter", Convert.ToString(Parameters));
            return sds;
        }
      

  3.   


    这个方法看起来也很好,但是其中的"DataSet ds = new BLL.Class().Function(quarter);" 不大明白,能详细解释一下吗?谢谢