过滤一个元素的SelectList,但不过滤其他元素

时间:2011-01-28 21:41:13

标签: c# .net html-helper selectlist

所以我在前端有这个:

<%= Html.DropDownListFor(m => m.FixedComponent.PaymentBusinessDayConvention, DropDownData.BusinessDayConventionList(), "", new { @class = "DontShrink", propertyName = "FixedComponent.PaymentBusinessDayConvention", onchange = "UpdateField(this);" })%>

此处定义DropDownData.BusinessDayConventionList()

public static SelectList BusinessDayConventionList()
        {
            return ListBuilder(
                BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.Following),
                BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.ModifiedFollowing),
                BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.Preceding),
                BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.Unadjusted));
        }

我想删除JUST一个HTML Helper的BusinessDayConvention.Unadjusted选项,但不能删除页面上所有其他HTML Helper的{{1}}选项。我怎么能干净利落地做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

在方法中包含参数:

    public static SelectList BusinessDayConventionList(bool includeUnadjusted)
    {
       var list = ListBuilder(
            BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.Following),
            BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.ModifiedFollowing),
            BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.Preceding));

       if (includeUnadjusted)
       {
         list.Items.Add(BusinessDayConventionHelper.GetFriendlyName(BusinessDayConvention.Unadjusted))
       }

       return list.
    }

您还可以使用重载来传递默认值:

    public static SelectList BusinessDayConventionList()
    {
       return BusinessDayConventionList(true);
    }