首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从非静态类ASP.Net c#设置接口可见性

如何从非静态类ASP.Net c#设置接口可见性
EN

Stack Overflow用户
提问于 2018-01-18 19:31:42
回答 1查看 58关注 0票数 0

我有一个类来保存一周中不同日期的接口。我将表单元格传递给那个类,并将其应用于一个列表。但是,当我循环遍历类并调用HideInterface方法时,它并没有设置接口的可见性。我遗漏了什么?在我的示例中,我希望不会看到星期二。我确信这与将属性设置为静态有关,但我无法完全破解它。

代码语言:javascript
运行
复制
private static List<DayOfWeek> days = new List<DayOfWeek>();

private static List<WhatsMyDay> myDays = new List<WhatsMyDay>();

  public class WhatsMyDay
  {
    public WhatsMyDay(DayOfWeek day, DropDownList am, 
                        DropDownList pm, HtmlTableCell dTitle)
    {
        Day = day;
        ddlAM = am;
        ddlPM = pm;
        tdTitle = dTitle;
    }

    public DayOfWeek Day { get; private set; }
    private static DropDownList ddlAM { get; set; }
    private static DropDownList ddlPM { get; set; }
    private static HtmlTableCell tdTitle { get; set; }

    public int? AM
    {
        get { 
            return Convert.ToInt32(ddlAM.SelectedValue) == -1 
                ? null 
                : (int?)Convert.ToInt32(ddlAM.SelectedValue); 
        }
    }

    public int? PM
    {
        get { 
            return Convert.ToInt32(ddlPM.SelectedValue) == -1 
                    ? null 
                    : (int?)Convert.ToInt32(ddlPM.SelectedValue); 
        }
    }

    public void ShowHideInterface(bool visiblity)
    {
        tdTitle.Visible = visiblity;
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    days.Add(DayOfWeek.Monday);
    myDays.Add(new WhatsMyDay(
            DayOfWeek.Monday, ddlMondayAM, ddlMondayPM, tdMondayTitle));

    myDays.Add(new WhatsMyDay(
            DayOfWeek.Tuesday, ddlTuesdayAM, ddlTuesdayPM, tdTuesdayTitle));

    foreach (WhatsMyDay dayo in myDays)
    {
        dayo.ShowHideInterface(days.Contains(dayo.Day));
    }
}
EN

Stack Overflow用户

发布于 2018-01-18 19:54:57

如果DayOfWeek是一个枚举(此处未显示),则行为将描述为:

由于只将Monday添加到days变量,因此只有Monday是可见的,因为只有简化后的表达式才是真的:[DayOfWeek.Monday].Contains(DayOfWeek.Monday)

使visiblity for ShowHideInterface仅在循环的该迭代中为真。

如果不是,什么是DayOfWeek

至于静态属性,您应该将它们更改为非静态属性,因为静态属性会使它们被WhatsMyDay的所有实例共享,而这似乎根本不是您的目标。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48320307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档