很奇怪。我有一个javascript函数来启用列表框,它在加载时被禁用。这个javascript函数可以正常启用或禁用列表框。但是,在用户单击“保存”按钮后,它没有获得新选择的项目;始终通过数据绑定保留旧的选定项目。我在页面加载上检查了isPostback。如果它不是isPostback,则列表框不会再次加载。有人会给我提示解决这个问题。 Thansk提前。
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
答案 0 :(得分:0)
要检查的第一件事是我们不会在每个回发上'重新绑定'。如果你这样可以解释为什么你得到你的开始。您可以将代码发布到绑定ListBox
的地方吗?
如果在回发时禁用了控件,那么它将不会发布'new'值,它将从ViewState最初为contrl存储的内容中移除,因此请确保在回发之前正确启用它。
以下是该行为示例的链接:
http://aspnet.4guysfromrolla.com/demos/ProblemNotReturningDisabledControls.aspx
如果您想测试这是否是问题,请在表单标记中设置以下属性,这将强制禁用已删除的控件:
<form id="form1" submitdisabledcontrols="true" runat="server">