我有一个 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/