LoadControl 和 RenderControl 问题
我自做了一个用户控件 里面有几个属性 ID NAME之类的根据这几个属性的不同,控件会产生不同的变化 可见不可见,内容不同 之类
但是我用 LoadControl 加载了之后 设置了 ID NAME 属性 再用 RenderControl 得到他的HTML代码之后 发现 我设置的属性没有起效 返回的HTML是控件的 初始状态的HTML 这种情况怎么解决呢?
UCcontrol uc = (UCcontrol )LoadControl("../UIControl/UCcontrol.ascx");
uc.ID= 123;
uc.Name= "sdfsd";
htmlWriter.Flush();
string result;
try
{
uc.RenderControl(htmlWriter);
}
catch { }
finally
{
htmlWriter.Flush();
result = build.ToString();
}
return result; --------------------编程问答-------------------- 只能自己顶一下了... --------------------编程问答-------------------- http://blog.csdn.net/bigstoneasd/archive/2008/02/01/2076202.aspx --------------------编程问答-------------------- UCcontrol uc = (UCcontrol )LoadControl("../UIControl/UCcontrol.ascx");
this.Controls.Add(uc);
--------------------编程问答-------------------- 看了2楼给的链接 知道是缓存的问题 但具体还是不大明白 能略微讲讲么? --------------------编程问答-------------------- private UControl uc;
protected override void CreateChildControls()
{
uc=(UControl)LoadControl("../UIControl/UCcontrol.ascx");
Controls.Add(uc);
this.ChildControlsCreated = true;
base.CreateChildControls();
}
protected override void Render(HtmlTextWriter writer)
{
uc.RenderControl(writer);
base.Render(writer);
}
protected void Page_Load(sender,e)
{
if(!IsPostBack)
{
EnsureChildControls();
uc.Name="修改后的Name";
}
} --------------------编程问答-------------------- 问题是 我不需要在页面上添加这个控件 只要这个控件的HTML代码 Controls.Add(uc); 不就加进来了么 我只需要在页面加载的时候 获得这个控件的HTML代码 不要把这个控件加到我的页面里来...
还有 我请问一下 为什么要重写Render ?? 直接用uc.RenderControl(writer) 不就好了? --------------------编程问答-------------------- 刚才详细看了一下 我自己做的控件没有设置缓存啊... 2楼给的链接也不大对 --------------------编程问答-------------------- 你用户控件的内容是什么 --------------------编程问答-------------------- 根据这几个属性的不同,控件会产生不同的变化 可见不可见,内容不同 之类
你可以理解为一个小内容的网页而已 --------------------编程问答-------------------- 你只需要将用户控件加入到容器就可以了
UCcontrol uc = (UCcontrol )LoadControl("../UIControl/UCcontrol.ascx");
uc.ID= 123;
.....
......
this.Controls.Add(uc);
--------------------编程问答-------------------- 我只要里面的html....就因为没加入到容器出了问题 才问呀... --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 , ASP.NET