2012-02-01 3 views
0

Это моя первая попытка asp.net и webforms, windowsforms, все это. Я изначально заполнял данные в списке, но я мог получить только один столбец, и подумал, что listView звучит так, как будто это будет делать то, что я хотел.Добавление строкового массива в listView Row Control C# asp.net

Наиболее перспективным решением я нашел это:

DataSet listData = new DataSet(); 
    CancellationsControls cancelCtrl = new CancellationsControls(); 
    listData = cancelCtrl.GetScheduledReleaseDataSet(); 

    DataTable dtable = listData.Tables[0]; 

    scheduledReleasesTag.Items.Clear(); 
    foreach (DataRow row in dtable.Rows) 
    { 
     string[] ar = Array.ConvertAll(row.ItemArray, p => p.ToString()); 
     scheduledReleasesTag.Items.Add(new ListViewDataItem(ar)); 
    } 

dtable обычай таблица запроса соединения несколько таблиц.

Я попытался выяснить больше о том, как работает элемент управления listView, но это так близко, что я смог получить что-либо. Любая помощь с объяснениями будет очень оценена.

Спасибо :)

+0

Как выглядит разметка для вашего списка? Кроме того, не уверен, что вы просмотрели примеры в [MSDN] (http://msdn.microsoft.com/en-us/library/ie/bb398790.aspx#BindingDataToTheListViewControl), но они могут быть полезны. – R0MANARMY

+0

Звучит почти как проблема Binding на первый взгляд – MethodMan

+0

К сожалению, я новичок в терминологии. Вот что находится в файле .aspx, если это то, что вы имели в виду. ' <жерех: ListView ID = Runat = "сервер" "scheduledReleasesTag"/> ' – mrfreester

ответ

2

Я довольно новичок в осины, но чтобы связать контроль ListView с данными, как чего-л это должно работать:

DataSet listData = new DataSet(); 
CancellationsControls cancelCtrl = new CancellationsControls(); 
listData = cancelCtrl.GetScheduledReleaseDataSet(); 

DataTable dtable = listData.Tables[0]; 
ListView1.DataSource = dtable; 
ListView1.DataBind(); 

Теперь мы должны создать ItemTemplate. Элемент управления ListView должен выглядеть следующим образом:

<asp:ListView ID="ListView1" runat="server"> 
     <ItemTemplate> 
     <tr id="Tr1" class="item" runat="server"> 
     <td> 
      <asp:Label ID="column_name" runat="server" Text='<%# Eval("column_name") %>' /> 
     </td> 
     </tr> 
     <tr id="Tr2" class="item" runat="server"> 
     <td> 
      <asp:Label ID="another_column_name" runat="server" Text='<%# Eval("another_column_name") %>' /> 
     </td> 
     </tr> 
     </ItemTemplate> 
</asp:ListView> 

Просто замените маркеры (column_name, another_column_name) с названиями столбцов, которые содержат данные, которые вы хотите отобразить. Этот шаблон отображает пары значений строк из двух столбцов один за другим.

+0

Удивительно, это именно то, что мне нужно знать. Я не знал о настройке шаблона. спасибо :) – mrfreester

+0

Im joy :). Я вижу, что вы новичок в StackOverflow, неплохо дать галочку возле сообщения, которое решает ваш вопрос и проголосует за него;). поздравил – IDontKnowPopePersonally

Смежные вопросы