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