如果在组件里面重载CreateChildControl方法,而方法里面需要调用一个属性
比如
protected override void CreateChildControls()
{
if (!string.IsNullOrEmpty(this.TableName))
{
.....
}
这里面的TableName是动态的,在页面上这个参数如果是通过一个方法里面来传递的比如
private void Bind(object sender, EventArgs arg)
{
this.Control1.TableName= "ABC";
}
但是这样的话控件获取的就是空的,因为构造的顺序是
组件的Init事件-->页面的init事件-->组件的CreateChildControl事件.....
是否只能吧参数的传递放在init事件里面执行,如果不是,还有其他的解决方法没?
比如
protected override void CreateChildControls()
{
if (!string.IsNullOrEmpty(this.TableName))
{
.....
}
这里面的TableName是动态的,在页面上这个参数如果是通过一个方法里面来传递的比如
private void Bind(object sender, EventArgs arg)
{
this.Control1.TableName= "ABC";
}
但是这样的话控件获取的就是空的,因为构造的顺序是
组件的Init事件-->页面的init事件-->组件的CreateChildControl事件.....
是否只能吧参数的传递放在init事件里面执行,如果不是,还有其他的解决方法没?
解决方案 »
- 请教个问题,我在JAVASCRIPT中给一个服务器端的Label的控件赋值
- 寻求 FCKeditor2.dll
- 有url重写需求的去下载代码吧
- 要多少分都给~要色也行~高分求救程序源码~
- 关于web窗体中在左边利用treeview控件时,点击按钮让treeview不显示也就是进入窗体中隐臧,再点按钮时出现???
- 能不能在两个不同事件中对同一集合进行赋值?如两个按扭事件
- 转型了,请推荐一些优秀的WEB系统参考
- 绑定的dropdownlist如何在默认情况下为空!
- sql参数究竟怎么搞啊~~~~~~~~~~~?
- 在ASp.net 中如何使用第三方提供的组件?
- !!!!!!!在线急等....即时结贴..
- 请做过搏客程序的指点?那个写BLOG的编辑框是怎么做的?
CreateChildControl如果是Init后根据某些数据生成控件,就不应该Init后调用,而应该传入参数之后再调用。
private void Bind(object sender, EventArgs arg)
{
this.Control1.TableName= "ABC";
this.Control1.CreateChildControl();
}
因为控件里面的control是按数据库的条件字段生成的,如果不在createChildControl里做,控件事件就无法绑定的.但现在就是说子控件的生成是依赖于控件的属性字段的...
set
{
//......... 调用方法.
}
}没有试过.仅为参考
{
get{ return (string)ViewState["tblname"]; }
set{ ViewState["tblname"]=value; ChildControlsCreated=false; }
}所有的控件在PreRender的时候都会自动调用EnsureChildControl方法,而这个方法会检查ChildControlsCreated,如果为false则自动调用CreateChildControls()方法并且再将标志改为true。这是控件早已经设计好的框架。
{
base.OnPreRender(e);
...........
}