在PostBack期间,JavaScript失去了它的功能
During PostBack JavaScript losing its functionality
我有一个GridView,其中有一个CheckBox和三个textbox在其模板列。逻辑是,当我选中CheckBox时,相应的textbox应该被启用。如果我取消复选框,那么相应的文本框应该被禁用。我为这个功能编写了JavaScript。
一切都很好,但在那个页面我有一个下拉列表太。当我改变DropDownList的值,页面得到PostBack,在那个时候,我失去了JavaScript功能,即在GridView中启用的文本框被禁用。如何解决这个问题?
在更新面板的每个帖子后,你需要重新初始化你的javascript,因为正如你所理解的html的结构已经改变,javascript在更新面板更新后不存在的前一个上运行。微软提供了如下功能:
这是javascript的行。
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
}
function EndRequest(sender, args) {
// here initialize again your javascript
}
</script>
使用ASP Grid的RowCreated事件在复选框上添加客户端函数,这样客户端函数将保留在每次回发
您必须在每次回发时使用ScriptManager.RegisterStartupScript
方法注册javascript以使其运行:这里有一个示例(对不起,为英文文章编辑:p)
使用自动发送回与复选框启用禁用文本框从服务器端代码。这将更新视图状态,因此它将在选择更改时维护。在ajax的UpdatePanel中使用这些。或者,您也可以在updatepanel中添加下拉菜单,这样选择的更改就不会影响到其他页面元素。
JavaScript正在开发DOM。当页面得到PostBack值从ViewState被写入DOM和覆盖您的JavaScript更改。你应该以持久的方式存储复选框的状态。jQuery data()或hiddenfield并在PostBack后将更改写回DOM
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 当添加spin(spin.js)时,网页将失去功能
- 选择框在应用 css/javascript 时失去功能
- 循环中的挖空下划线循环会失去可观察的功能
- 如果打开了scriptUI调色板,为什么InDesign会失去所有键盘功能
- 固定按钮失去功能后滚动
- 如何在不失去原有功能的情况下扩展JavaScript中的Object
- 在使用Javascript提交POST表单的超链接上失去了右键单击功能
- JavaScript在使用DOCTYPE时失去图像移动功能
- 如何在不失去它的功能的情况下居中
- 在PostBack期间,JavaScript失去了它的功能
- 剑道对象失去了功能和风格
- 显示下拉菜单onmousedown而不失去onclick功能
- 我想添加一个facebook功能,当我的用户失去互联网连接时显示消息