Привязка списка из FormView к модели в веб-формах ASP.net - PullRequest
2 голосов
/ 05 марта 2010

Для большой заполненной формы я использую asp.net FormView для магической привязки данных к моей модели. В этой модели у меня есть свойство Rides (показано ниже), которое предоставляет список, который я, очевидно, не хочу заменять полностью. Поэтому я сделал это только для чтения.

Однако таким образом я больше не могу использовать функции привязки данных. Есть ли общее решение этой проблемы?

public IList<Ride> Rides
{
    get
    {
        if (this._rides == null)
        {
            this._rides = new List<Ride>();
        }

        return this._rides;
    }
}

Ответы [ 3 ]

1 голос
/ 10 марта 2010

Вы все еще можете использовать привязку данных вместо <% # Bind ("PropertyName")%> use <% # Eval ("PropertyName")%>, Поскольку Bind обычно используется для двухстороннего связывания, а Eval обычно используется для оценки базовых источников данных, Bind будет полезен, когда у вас также есть установщик. Надеюсь, что это прольет достаточно света, и вы найдете это полезным.

0 голосов
/ 15 марта 2010

Monty, Взгляните на класс с именем BindingList. Список привязок обеспечивает двустороннюю привязку. Вы можете создать его из коллекции Yor в коде и добавить его в свойство источника данных FormView. Я думаю, что это то, что вы хотите. Также, выставляя IList, ВЫ не сделали эту вещь доступной только для чтения. Я могу переписать в Список, и я могу изменить Ваши пункты полностью. Если вы действительно хотите представить поездки как доступные только для чтения, верните IEnumerable и не возвращайте список List с помощью ReadOnlyCollection ... список преобразования для другого класса не поможет.

0 голосов
/ 10 марта 2010

Дикий удар в темноте, не знаю, сработает ли это, но я думаю, вы можете попробовать ...

Как насчет того, чтобы вернуть setter (set) обратно в свойство, но сделать его назначенным самому себе?

например.

set
{
    this._rides = this._rides;  // Rather than this._rides = value;
}

Это будет означать, что значение недоступно в свойстве, если попытка выполнить заданную операцию не нанесет никакого вреда и все равно должна связываться ...

...