ASP.NET ListView - общее значение (сумма) для столбца - PullRequest
0 голосов
/ 20 марта 2012

Я пишу элемент управления многократного использования - давайте назовем его MyListView - унаследованный от стандартного элемента управления ASP.NET ListView. В качестве источника данных всегда задан LinqDataSource, и мне нужно вычислить общее значение для определенного столбца (сумму всех значений для этого столбца). Каким способом лучше всего рассчитать общую стоимость? Я думал о событии OnItemDataBound и вычислении общего количества там с использованием глобальной переменной, но мне также нужно подкачки страниц в MyListView (с использованием стандартного элемента управления Pager), и это событие вызывается только для строк на видимой в данный момент странице, а не для всех строк в источнике данных. Я также не хочу вычислять общую сумму в коде за страницей ASPX, я просто хочу указать имя столбца в aspx, и MyListView автоматически вычислит общее значение для столбца.

Спасибо за помощь!

Ответы [ 4 ]

1 голос
/ 01 августа 2013
Dim total As Integer
For Each Items As ListViewItem In lV_allItems.Items
    Dim lbl As Label = CType(Items.FindControl("Quantitytxtbox"), Label)
    total += lbl.Text
Next
Label1.Text = "TOTAL FRAME ADDED : " + total.ToString

Я поместил этот код в prerender страницы, и он прекрасно работает, вы должны убедиться, что в столбцах есть целое число, иначе вам нужно конвертировать.

1 голос
/ 20 марта 2012

Если вы используете нумерацию страниц, получить такой результат нелегко. Я думаю, вам следует рассмотреть возможность размещения строки, используемой для итогов , за пределами ListView (чтобы вы могли использовать LINQ и для вычисления итогов, думаю, вы не хотите перечислять все элементы для вычисления итогов, когда это возможно). сделать быстро на стороне SQL).

0 голосов
/ 20 марта 2012

предполагается, что вы используете этот запрос для привязки к списку

var queryforBind= (from c in table).Skip(1).Take(10); //1 and 10 can be changed according to your requirement

, а после привязки к представлению списка вызовите этот запрос для вычисления итогов.

var sum = queryforBind.Sum(x => x => x.Field); //Field can be according your requirement
0 голосов
/ 20 марта 2012

Если вы хотите получить общее значение из базы данных, я предлагаю передать выходной параметр с вашим запросом / linkq в базу данных и получить сумму всех записей из базы данных в том же вызове, в котором вы получаете данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...