.NET 4.x Отрисовка данных в ListView по каждому элементу List - C#
Формулировка задачи:
Добрый день! Срочно нужна подсказка, коллеги. Не могу найти ответ.
Есть коллекция строк, по каждому элементу этой коллекции нужно пройтись foreach'ем и передать данные в ListView на странице (эти данные собираются из БД). Сейчас проблема в том, что данные в ListView я вижу только по последнему элементу коллекции. Т.е. таблица, скорее всего *перерисовывается* с каждой итерацией.
ASPX:
До этого пробовал другой SQL запрос, содержащий "IN (@param)" (передавал в строке многозначный параметр через запятую), но успеха также не добился. Выручайте!
Больше, вроде бы, уточнять нечего.
Казус ситуации в том, что если прописать запрос с конкретными параметрами прямо в ASPX,
то вывод информации правильный - по всем элементам в коллекции параметра:
Хотя параметр (строка "1/0013/16L','1/0012/16L','1/0011/16L") абсолютно идентичен тому, что я передаю в code behind'е...
SqlDataSource1.SelectCommand = "SELECT ID, Comment FROM Parameters WHERE " + "HeatNumber=@Mass ORDER BY ID DESC"; foreach (string heat in heatCollection) { SqlDataSource1.SelectParameters["Mass"].DefaultValue = heat; SqlDataSource1.Select(DataSourceSelectArguments.Empty); SqlDataSource1.DataBind(); } ListView1.DataBind();
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:LocalSqlServer %>" DataSourceMode="DataSet" runat="server"> <SelectParameters> <asp:Parameter Name="Mass" Type="String" Direction="Input" /> </SelectParameters> </asp:SqlDataSource>
Если поможет - шаблон айтемов в ASPX указан так:
<td><asp:Label ID="txt" runat="server" Text='<%# Eval("Comment") %>'></asp:Label></td>
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:LocalSqlServer %>" DataSourceMode="DataSet" runat="server" SelectCommand="SELECT ID, прочие поля, Comment FROM Parameters WHERE HeatNumber IN ('1/0013/16L','1/0012/16L','1/0011/16L') ORDER BY ID DESC">
Решение задачи: «.NET 4.x Отрисовка данных в ListView по каждому элементу List»
textual
Листинг программы
var parameters = new List<string>(heatCollection.Count); foreach (string heat in heatCollection) { string parameter = "Mass" + (parameters.Count+1); parameters.Add(parameter); SqlDataSource1.SelectParameters.Add(parameter, heat); } SqlDataSource1.SelectCommand = string.Format("SELECT ID, Comment FROM Parameters WHERE HeatNumber IN ({0}) ORDER BY ID DESC", string.Join(",", parameters)); SqlDataSource1.Select(DataSourceSelectArguments.Empty); SqlDataSource1.DataBind(); ListView1.DataBind();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д