Отключить фильтрацию в представлении списка динамических данных - PullRequest
0 голосов
/ 18 августа 2010

У меня есть набор сущностей NotificationTemplates , и у каждого из них есть коллекция из нулевого множества SmsTemplate сущностей. При редактировании или просмотре NotificationTemplate у меня есть ссылка на View SMS Templates. Эта ссылка переводит меня в представление списка для набора сущностей SmsTemplates , отфильтрованного для NotificationTemplate , который я просматривал.

Как запретить пользователю изменять этот фильтр, чтобы он отображал SmsTemplates для другого NotificationTemplate ? То есть я хочу фильтр, но он должен быть только для чтения. Выпадающий список просто не должен выпадать, он должен просто отображать имя NotificationTemplate , к которому принадлежат эти SmsTemplates. Чтобы просмотреть SmsTemplates для другого NotificationTemplate , пользователь должен щелкнуть View SMS Templates из этого другого шаблона.

1 Ответ

1 голос
/ 07 февраля 2011

Кодовый шаблон шаблона фильтра - это то, что говорит фильтру забрать его значение из строки запроса.Он проверяет свойство 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;
        }
    }
}
...