日期:2014-05-19  浏览次数:20517 次

怎样通过修改用户控件的属性实现用户控件的回传或刷新?
我自定义了一个用户控件

暴露了一个属性,

想在调用该控件的页面上动态的给这个属性付值,

然后此用户控件根据属性的值重新加栽,怎么实现啊



------解决方案--------------------
你只可以用 ajax 实现,定时更新
还有一种就是页面刷新

------解决方案--------------------
给页面刷新下,控件就跟着刷新了
------解决方案--------------------
声明你的用户控件
protected MyControl c;
然后就跟普通控件一样的操作
------解决方案--------------------
呵呵,楼主,我知道你遇到了什么问题,你的感觉,是不是你给属性赋了值,但是用户控件不听你的话?^_^

以查询为例来说一下,在页面上有一个文件框,一个按钮,一个用户控件(显示信息的列表)

这时你想在方框中输入一个值,然后点击按钮,在按钮的处理事件中,把文本框的值赋给控件的属性,你想让用户控件根据你输入的值,来查询显示结果,是不是这样?

你的思路原本没有错,错就错在你对页面加用户控件的生命周期没有搞懂。
他们的执行顺序是这样的:

页面的page_load --> 用户控件的page_load --> 页面中按钮事件处理方法

看到了吧,你可能是在用户控件的page_load里对你的列表控件进行邦定的,而这个时候你的方本框的值跟本就没有赋到用户控件里面去(因“页面中按钮事件处理方法”后执行)。

所以解决方法,就是在用户控件中写一个公共的 邦定数据列表的方法,页面中按钮事件处理方法中给用户控件的属性赋值后,在调用用户控件的邦定方法就OK了。

(注:你在你的用户控件的page_load里对列表进行邦定时,要放在IsPostBack里,否则的话,会进行两次邦定,损失性能)
------解决方案--------------------
帮顶
------解决方案--------------------
在page_load重新加载
if(this.IsPostBack)
{
控件.attributes.add( " ", " ");
}
------解决方案--------------------
要么可以自定义一个控件实现 IPostBackEventHandler
参考:http://www.cnblogs.com/oldswallow/archive/2006/04/18/377881.html
------解决方案--------------------