列表框的已启用属性
本文关键字:启用 属性 列表 | 更新日期: 2023-09-27 18:36:56
下面是我的 ASP.Net 标记:
<div>
<asp:ListBox ID="listSourceBox" runat="server" DataSourceID="sqlDataSource" SelectionMode="Multiple"
Enabled="false" DataTextField="Title" DataValueField="Id"></asp:ListBox>
<asp:Button ID="btnSourceToDest" Text=">>" runat="server" OnClick="btnSourceToDest_Click" />
<asp:Button ID="btnDestToSource" Text="<<" runat="server" OnClick="btnDestToSource_Click" />
<asp:ListBox ID="listDestBox" runat="server" Enabled="false"></asp:ListBox>
<asp:SqlDataSource ID="sqlDataSource" runat="server" ConnectionString="<%$ConnectionStrings: Movies %>"
SelectCommand="SELECT Id, Title FROM Movies"></asp:SqlDataSource>
</div>
listSourceBox 和 listDestBox 都被禁用。当我运行我的应用程序时,它抛出"对象引用未设置为对象的实例",主要是由于 listSourceBox 被禁用。但是,当我启用列表源框时,一切正常,理想情况下,应该禁用列表DestBox,但事实并非如此!此外,当启用 = false 时,应像所有其他 ASP .Net 控件一样禁用列表框,但它的行为不同。为什么?
思潮?
谢谢!
ASP Listbox
不尊重Enabled
属性,您需要在代码中显式执行此操作,如下所示:
listSourceBox.Attributes.Add("disabled","");
listSourceBox.Attributes.Remove("disabled");
虽然,这与你的Object Reference error
无关,因为那只是一个属性,所以你的代码中还有其他问题。
编辑:如果您的目标是 ASP.NET 4.0,则不设计为接受用户输入的控件将不尊重此属性,因此您需要在 web.config 文件的<system.web>
部分中包括以下内容:
<system.web>
<pages controlRenderingCompatibilityVersion="3.5">.
</system.web>
在此之后,您可以像这样简单地使用Enabled
属性:-
listSourceBox.Enabled = true;
listSourceBox.Enabled = false;
或者在这样的标记中:-
<asp:ListBox ID="listSourceBox" runat="server" Enabled="false"...