当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,