我有一个 NotificationTemplates 的实体集,其中每个都有一个零多个 SmsTemplate 实体的集合。编辑或查看 NotificationTemplate 时,我有一个指向View SMS Templates
的链接。该链接将我带到 SmsTemplates 实体集的List视图,针对我正在查看的 NotificationTemplate 进行过滤。
如何阻止用户更改此过滤器以向其他 NotificationTemplate 显示 SmsTemplates ?也就是说,我想要过滤器,但它必须是只读的。下拉列表不能下拉,它必须只显示这些SmsTemplates所属的 NotificationTemplate 的名称。要查看另一个 NotificationTemplate 的SmsTemplates,用户必须点击其他模板中的View SMS Templates
。
答案 0 :(得分:1)
filter template的代码隐藏是告诉过滤器从查询字符串中获取其值的原因。它检查DefaultValue属性,如果设置为值,则将其分配给过滤器。您要做的是添加逻辑,当 DefaultValue 具有值时,该过滤器使过滤器为只读。使其成为只读的最简单方法是禁用控件。以下是如何为默认的 ForeignKey.ascx.cs 实现它:
protected void Page_Init(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (!Column.IsRequired)
{
DropDownList1.Items.Add(new ListItem("[Not Set]", NullValueString));
}
PopulateListControl(DropDownList1);
// Set the initial value if there is one
string initialValue = DefaultValue;
if (!String.IsNullOrEmpty(initialValue))
{
DropDownList1.SelectedValue = initialValue;
DropDownList1.Enabled = false;
}
}
}