asp.net自定义服务器控件在局部刷新后,原有JS修改的Attribute属性值丢失
开发了一个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,但是这样也就导致控件的其他效果和绑定事件丢失。
麻烦帮助解决一下,谢谢!!!
解决问题后,再加50分!!! --------------------编程问答-------------------- UpdatePanel中有ScriptManager1
this.ClientScript.RegisterStartupScript(GetType(),"","<script>...</script>") --------------------编程问答-------------------- base.Attributes.Add("OldValue", this.Text);
这句话的位置有问题,可以放在prerender的最后试试
补充:.NET技术 , ASP.NET