将“已禁用”类别添加到下拉列表Webforms

时间:2018-07-09 17:16:03

标签: c# asp.net webforms

我有一个下拉列表,该列表从数据库中的类别按程序生成“护理项目”,但是当禁用护理项目(或其类别)时,我希望在末尾使用--Disabled--类别标记我的下拉列表中,然后填充了禁用的内容。

DropDownBox

-饮食

---用餐援助

---送餐

-卫生

---沐浴帮助

---洗衣

-----------已禁用------------

-饮食

---膳食准备

-医学

---餐前药丸管理

ETC ETC

aspx:

<label>Care Item:</label>
<asp:ObjectDataSource ID="odsCareItems" runat="server" OnObjectCreating="odsBocaView_ObjectCreating" SelectMethod="GetCareItems" TypeName="Boca.DataView.CareData.CareConfigurationView">
    <SelectParameters>
        <asp:ControlParameter Name="facilityId" ControlID="lstFacility" Type="Int64" />
        <asp:ControlParameter Name="careProgramId" ControlID="lstCareProgram" Type="Int64" />
        <asp:Parameter Name="includeDisabled" Type="Boolean" DefaultValue="False" />
    </SelectParameters>
</asp:ObjectDataSource>
<qs:extendeddropdownlist id="lstCareItems" runat="server" datasourceid="odsCareItems" skinid="large" datatextfield="Name" datavaluefield="ID" datagroupfield="Category" ondatabound="OnCareItemFilterDataBound" />

还有CS:

public List<CareItemView> GetCareItems(long facilityId, long careProgramId, bool includeDisabled = true)
{
    if (facilityId > 0 && SecurityContext.RestrictedFacilityIds != null && !SecurityContext.RestrictedFacilityIds.Contains(facilityId))
    {
        return null;
    }

    var query = CareItemFactory.Instance.GetByCareProgram(facilityId, careProgramId);

    if (!includeDisabled)
    {
        query = query.Where(x => !x.IsDisabled && !x.CareItemCategory.IsDisabled);
    }
    return query.Select(i => new CareItemView
    {
        ID = i.ID,
        Category = i.CareItemCategory.Name,
        Name = i.Name
    }).ToList();
}

在Webforms中执行此操作的最佳方法是什么?我可以在查询中完成此操作吗?是的,我知道这是哪一年,该死的网络表格。

1 个答案:

答案 0 :(得分:0)

您可以以编程方式在给定索引处添加ListItem。

DropDownList1.Items.Insert(5, new ListItem() { Text = "--- Disabled ---", Value = "" });

唯一的问题是,这是在后面的代码中完成的。但是您的来源在aspx上。因此,为了使其正常工作,您需要在插入之前将源数据绑定到后面的代码中。

您还可以将项目插入GetCareItems方法中。那将是最简单的。

YourList.Insert(5, new CareItemView() { Name = "--- Disabled ---" } );