【问题标题】:Adding a 'Disabled' category to dropdown list Webforms将“禁用”类别添加到下拉列表 Web 表单
【发布时间】:2018-07-09 17:16:02
【问题描述】:

我有一个下拉列表,它在程序上从数据库中的类别生成“护理项目”,但是当护理项目(或其类别)被禁用时,我想要一个 --Disabled-- 最后的类别标记我的下拉列表,然后填充禁用的内容。

下拉框

-饮食

---餐饮协助

---送餐

-卫生

---洗澡辅助

---洗衣房

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

-饮食

---膳食准备

-医学

---餐前服药

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 中执行此操作的最佳方法是什么?我可以在我的查询中完成这个吗?是的,我知道现在是哪一年,顺便说一句,网络表单。

【问题讨论】:

    标签: c# asp.net webforms


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多