如何通过Webpart类连接GridView DataSource?

时间:2010-03-01 20:18:50

标签: c# .net asp.net gridview

我尝试使用您知道的WebPArt制作myGridView Companent:

using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.WebControls; 
using System.Web.UI;

namespace MyGridView
{
    public class MyGridView : WebPart
    {
        GridView gv;

        protected override void CreateChildControls()
        {
            gv = new GridView();
            gv.CssClass = "tablestyle";
            this.Controls.Add(gv);
        }

    }
}

我在Toolbox上添加了这个GridView。一切都好 。我想将自己的CSS设计添加到我的GridView中。但是如果我将这个gridView从工具箱中删除到aspx页面。如果我绑定我的数据源;数据源不是自己展示的。

与主程序一样:


protected void Page_Load(object sender, EventArgs e)
        {
          LoadData loaddata = new LoadData();
          DataTable  dt = loaddata.LoadSQL("conn", "sp_GetAllCategory");
           MyGridView1.datas....   -----> i can not see DataSource why?
        }

我想看看我的GridView数据源。如果我写Binding数据源。 MyGridView1.DataSource ----->我看不到DataSource为什么?

1 个答案:

答案 0 :(得分:0)

因为您需要将DataSource添加到控件中; Web部件默认不支持它(basedataboundcontrol类定义DataSource和DataBind)。所以你需要添加这个:

public object DataSource
{
   get 
   {
       this.EnsureChildControls();
       return gv.DataSource; 
   }
   set 
   { 
       this.EnsureChildControls();
       gv.DataSource = value; 
   }
}

通常,您必须调用EnsureChildControls()以便在包装网格属性之前创建所有子控件,但我不确定您是否可以访问EnsureChildControls。我想是的。