Как получить доступ к связанному элементу DataSource в событии DataBound в ASP.NET ListView? - PullRequest
0 голосов
/ 22 сентября 2010

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

Я связал свой ListView с SqlDataSource и хочу написать некоторый текств элементе управления, представленном в представлении, созданном в LayoutTemplate, в зависимости от некоторых свойств возвращаемых строк.

Очевидно, я использую событие ItemDataBound для подачи своих элементов, но это не главное.

Спонтанным решением было связать событие ListView.DataBound и получить доступ к необработанному источнику данных (DataTable?) И выполнить необходимые вычисления.

Я проверил свойство Items и, несмотря на то, что оно не было пустым, связанное с нимСвойство DataItem имеет значение null.

Есть ли у вас какие-либо предложения?

Единственный обходной путь, к которому я могу обратиться, - выполнить вычисления в событии ItemDataBound и накапливать результат в некоторых частных полях.Но это действительно уродливо видеть и затрудняет получение некоторых необходимых значений.

Большое спасибо.

1 Ответ

0 голосов
/ 22 сентября 2010

В ItemDataBound вы сможете получить доступ к источнику данных для ListView через свойство DataSource (вам может потребоваться преобразовать его в DataTable):

protected void Listview1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    DataTable sourceData;

    sourceData = (DataTable)Listview1.DataSource;

    // sourceData is a DataTable, you can run .Compute or whatever you need
}
...