.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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д