2014-01-15 3 views
0

У меня есть ListView, и я хотел бы извлечь из него столбец даты. Мне удалось найти keyId, но я не могу узнать, как извлечь дату. Добавить класс и DataSourceизвлечь конкретный столбец из Listview

public partial class DocApointment : System.Web.UI.Page 
{ 
    ..... 

    protected void DocApointment_Update() 
    { 
    int keyId = 0; 
    int indxChkBox = 0; 

    foreach (ListViewDataItem item in ListView1.Items) 
    { 
     CheckBox MyCheckBox = (CheckBox)item.FindControl("MyCheckBox"); 
     if (MyCheckBox.Checked) 

     { 
      keyId = Convert.ToInt32(ListView1.DataKeys[item.DataItemIndex].Value); 
      choiceddl = DropDownList1.SelectedValue; 

      var itemDateBooked = (ListView1.Items. .dateBooked) <=== I am trying to find the 
                    syntax to extract the date 
                    from the selected listview 

Вот DataSource

 <asp:ListView ID="ListView1" runat="server" DataKeyNames="apointmentId" 
     DataSourceID="LinqDataSource1" InsertItemPosition="LastItem" > 
      <AlternatingItemTemplate> 
       <tr style=""> 
       <!-- <td> 
         <asp:Label ID="ApointmentIdLabel" runat="server" Text='<%# 
         Eval("ApointmentId") %>' /> 
       </td> --> 
       <td> 
        <asp:Label ID="doctorNameLabel" runat="server" Text='<%# 
         Eval("doctorName") %>' /> 
       </td> 
       <td> 
        <asp:Label ID="dateBookedLabel" runat="server" Text='<%# Eval("dateBooked", 
         "{0:dd-MM-yyyy}") %>' /> 
       </td> 
       <td> 
        <asp:CheckBox id="MyCheckBox" runat="server" 
          value='<%# Eval("apointmentId") %>' 
          AutoPostBack="true" 
          OnCheckedChanged="Check_Clicked" /> 

       </td> 
      </tr> 

ответ

0

Если вы используете отладчик, вы увидите, что ListViewDataItem класс имеет свойство типа object имени DataItem.

Этот объект является классом коллекции, которая была присвоена значком ListView.

Таким образом, чтобы получить доступ к его свойствам, вы просто должны привести его к первоначальному типу:

((TheClassOfTheElements)(item.DataItem)).TheRequiredProperty 

Yo можно использовать отладчик и проверить элемент данных, чтобы найти это выражение, а затем копировать + вставить это в коде тура.

+0

Я пытаюсь это, но я не понимаю, как он будет извлекать мою дату из списка. Извините, я новичок в C#. Вот что я пробовал, но он генерирует исключение null ref. var dateItem = ((DateTime) (item.DataItem)). Дата; – user3127986

+0

Нет, вам нужно преобразовать (item.DataItem) в класс элементов коллекции, которые вы связываете с ListView, а не с DateTime. Можете ли вы показать мне класс, который вы связываете с ListView? Как определить источник данных в ListView? – JotaBe

+0

Я добавил класс для списка и код источника данных – user3127986

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