gpt4 book ai didi

javascript - 通过 JavaScript 和回发启用后,ListBox 中的选定项目不正确

转载 作者:行者123 更新时间:2023-11-28 09:24:11 25 4
gpt4 key购买 nike

这很奇怪。我有一个 javascript 函数来启用列表框,该列表框在加载时被禁用。这个 javascript 函数可以很好地启用或禁用列表框。但是用户点击保存按钮后,并没有得到新选择的项目;始终通过数据绑定(bind)保留旧的选定项目。我检查了页面加载时的 isPostback。如果不是 isPostback,则不会再次加载列表框。有人能给我解决这个问题的提示吗?提前致谢。

function enableProject() {           
var chk=document.getElementById('chkProject');
if (chk.checked) {
document.getElementById('listProject').disabled = false;
}
else {
document.getElementById('listProject').disabled = true;
}
}

这是我的 asp.net 页面

<asp:ListBox id="listProject" runat="server"
SelectionMode="Multiple" Rows="5" class="w200" Enabled="false"/>
<asp:checkbox id="chkProject" runat="server"
Text="Enable" onclick="enableProject()" />

以下代码用于检查ListBox:

For Each projectItem In listProject.Items
If projectItem.Selected Then
'create a new project object
Dim objProj As New Data.Project( ID, projectItem.Value)
objProjects.Add Project(objProj)
End If
Next

最佳答案

首先要检查的是我们没有在每次回发时“重新绑定(bind)”。如果你是,那就可以解释为什么你会得到你开始的东西。您可以在绑定(bind) ListBox 的位置发布您的代码吗?

如果控件在回发时被禁用,那么它将不会发布"new"值,并且只会脱离 ViewState 最初为控件存储的内容,因此请确保在回发之前它确实已启用。

以下是包含该行为示例的链接:

https://web.archive.org/web/20210420005338/https://aspnet.4guysfromrolla.com/demos/ProblemNotReturningDisabledControls.aspx

如果您想测试这是否是问题所在,请在表单标记中设置以下属性,这将强制回发禁用的控件:

<form id="form1" submitdisabledcontrols="true" runat="server">

关于javascript - 通过 JavaScript 和回发启用后,ListBox 中的选定项目不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14611922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com