none
asp.net自定义服务器控件在局部刷新后,原有JS修改的Attribute属性值丢失 RRS feed

  • 问题

  • 开发了一个asp.net自定义服务器控件(继承自TextBox),在OnPreRender中为其
    1、添加了一个OldValue属性:base.Attributes.Add("OldValue", this.Text);
    2、设定了onkeydown事件:onkeydown = "GetOldValue(this);"  脚本为:function GetOldValue(ctrl){var obj=$("#" + ctrl.id); obj.attr("OldValue", obj.val());

    使用时,将其放在一个UpdatePanel中,在未提交局部刷新前,在其onkeyup事件中能用脚本:var obj=$("#" + ctrl.id); obj.attr("OldValue")获取其值,一旦提交后第一次触发onkeyup发现该值变为了0。

    调试发现,如果在OnPreRender事件中的第一句前加上:if(this.Page.IsPostBack) return; ,则提交无刷新后也能继续保持提交前的OldValue,但是这样也就导致控件的其他效果和绑定事件丢失。

    麻烦帮助解决一下,谢谢!!!

    2011年3月13日 6:30

全部回复