c# - 在回发期间 JavaScript 失去其功能

标签 c# javascript asp.net gridview

我有一个 GridView,其模板列中有一个复选框和三个文本框。 逻辑是,当我检查复选框时,应该启用相应的文本框。如果我取消选中复选框,则相应的文本框应该被禁用。我已经为此功能编写了 JavaScript。

一切工作正常,但在该页面中我也有一个 DropDownList。当我更改 DropDownList 值时,页面会进行 PostBack,此时我失去了 JavaScript 功能,即 GridView 中启用的 TextBox 被禁用。如何解决这个问题?

最佳答案

在更新面板中每次发布后您需要重新初始化您的 JavaScript,因为据您了解,html 的结构已发生变化,并且 JavaScript 在更新面板后不存在的前一个结构上运行更新。 Microsoft 提供了执行此操作的功能,如下所示。

这是 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>

关于c# - 在回发期间 JavaScript 失去其功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743394/

相关文章:

asp.net - 设置国际货币格式

c# - 关闭后无法重复使用 wpf 窗口

c# - TransactionScope 是否支持原子数据库执行?

asp.net - 检测浏览器类型

javascript - 如何等待浏览器在 javascript 中完成回流?

javascript - 为什么 UpdatePanel 会在几分钟后停止工作?

c# - 在 c# asp.net 中创建自定义警报框

c# - 事件处理程序 S100 的方法名称

c# - 等待线程问题

javascript - 如何使用 javascript 验证表单输入文本