相同的用户控件如何呈现不同的输出?

How can same user control render different output?

好的。开始了。我不确定这里是否有人实现了这个,但我在我的 Webforms 应用程序中有一个用户控件,我正在调用多个表单。

此用户控件有一个下拉列表,它调用存储过程并根据特定日期过滤下拉列表。但是,在其中一种形式上,我希望相同的用户控件仍然调用存储过程但根本不进行过滤,只获取所有记录。

基本上,我希望同一个用户控件在一个窗体上做一件事,在另一个窗体上做另一件事。我想使用相同的用户控件,因为只有很小的变化。其余部分相同,因此我想避免创建另一种形式。

这可能吗?

谢谢。

最简单的方法是在用户控件上创建 属性:

public bool SOmeCOnfigurableSetting
{
  get { return ((bool?)ViewState[".."]).GetValueOrDefault(false); }
  set { ViewState[".."] = value; }
}

它可以是任何类型,而不仅仅是 bool。在每个页面中,在用户控件定义上设置 属性,这将控制过滤或其他功能。