我尝试使用您知道的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为什么?
答案 0 :(得分:0)
因为您需要将DataSource添加到控件中; Web部件默认不支持它(basedataboundcontrol类定义DataSource和DataBind)。所以你需要添加这个:
public object DataSource
{
get
{
this.EnsureChildControls();
return gv.DataSource;
}
set
{
this.EnsureChildControls();
gv.DataSource = value;
}
}
通常,您必须调用EnsureChildControls()以便在包装网格属性之前创建所有子控件,但我不确定您是否可以访问EnsureChildControls。我想是的。