如何在动态绑定下拉列表时禁用下拉列表项
本文关键字:下拉列表 动态绑定 | 更新日期: 2023-09-27 18:03:29
下拉列表动态绑定为:
<asp:DropDownList ID="ddlSource" class="ddl" runat="server" DataSourceID="FROM1" DataTextField="CompanyName" DataValueField="CompanyName">
</asp:DropDownList>
<asp:SqlDataSource ID="FROM1" runat="server" ConnectionString="<%$ ConnectionStrings:PIMSConnectionString2 %>" SelectCommand="SELECT [CompanyName] FROM Company ORDER BY [CompanyName]"></asp:SqlDataSource>
<br />
CompanyName
表的值等于"选择",我希望这个值在下拉列表中显示,但应该是灰色的(禁用),这样用户就不能选择或设置它。
知道如何在ASP中做到这一点吗?. NET(不是HTML)?
根据评论中的其他问题有完整的答案。
根据CompanyName="Select"
:
ListItems
禁用并置于ddlSource
之上aspx:
<asp:DropDownList ID="ddlSource" class="ddl" runat="server" > </asp:DropDownList>
<asp:SqlDataSource ID="FROM1" runat="server" ConnectionString="<%$ ConnectionStrings:PIMSConnectionString2 %>" SelectCommand=""></asp:SqlDataSource>
<br />
背后代码:
public void PopDDL()
{
FORM1.SelectCommand = "SELECT CompanyName FROM Company ORDER BY CASE WHEN CompanyName='Select' THEN 0 ELSE 1 END;"
ddlSource.DataSourceID = "FORM1";
ddlSource.DataTextField = "CompanyName";
ddlSource.DataValueField = "CompanyName";
ddlSource.DataBind();
foreach (ListItem itm in ddlSource.Items) {
if (itm.Value == "Select") {
itm.Attributes.Add("disabled", "disabled");
}
}
}
protected void Page_Load(object sender, System.EventArgs e)
{
PopDDL();
}
试试这个,但是填充ddlSource
将从后面的代码(它在vb.net中,抱歉):
Public Sub PopDDL()
FORM1.SelectCommand = "SELECT CompanyName FROM Company ORDER BY CompanyName;"
ddlSource.DataSourceID = "FORM1"
ddlSource.DataTextField = "CompanyName"
ddlSource.DataValueField = "CompanyName"
ddlSource.DataBind()
For Each itm As ListItem In ddlSource.Items
If itm.Value = *your_condition* Then 'condition why this item must be disabled
itm.Attributes.Add("disabled", "disabled")
End If
Next
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
PopDDL()
End Sub
项目将显示但禁用(灰色)。
更新:我使用转换工具(vb.net到c#),我认为这是c#代码:
foreach (ListItem itm in ddlSource.Items) {
if (itm.Value == *your_contidion*) { 'condition why this item must be disabled
itm.Attributes.Add("disabled", "disabled");
}
}
如果您使用itm.Enabled = False
,项目将不显示。
UPDATE #2(通过在线转换器转换为c#代码):
aspx page:
<asp:DropDownList ID="ddlSource" class="ddl" runat="server" > </asp:DropDownList>
<asp:SqlDataSource ID="FROM1" runat="server" ConnectionString="<%$ ConnectionStrings:PIMSConnectionString2 %>" SelectCommand=""></asp:SqlDataSource>
<br />
背后代码:
public void PopDDL()
{
FORM1.SelectCommand = "SELECT CompanyName FROM Company ORDER BY CompanyName;";
ddlSource.DataSourceID = "FORM1";
ddlSource.DataTextField = "CompanyName";
ddlSource.DataValueField = "CompanyName";
ddlSource.DataBind();
foreach (ListItem itm in ddlSource.Items) {
if (itm.Value == *your_condition*) {
itm.Attributes.Add("disabled", "disabled");
}
}
}
protected void Page_Load(object sender, System.EventArgs e)
{
PopDDL();
}