2014-01-29 3 views
0

У меня есть список с выпадающим списком. В первый раз, когда я пришел в список, и я использовал кнопку NEXT в нижней части списка, он отображает все просто отлично. Если бы я изменил выпадающий список на другой, он отобразил список в первый раз, но если бы я использовал кнопку NEXT, он НЕ обновил список. Я использую AJAX с UpdatePanel. Я вижу, что список был правильно заполнен (apt.Count() возвращает 20 записей). Любая идея, что может быть неправильным?listview не обновляется должным образом после использования кнопки NEXT

Я думаю, мне нужно обновить или что-то в этом роде, возможно, из-за AJAX?

Вот код опережать

private void ListApt(int iIndexDdl) 
{ 
    using (AptDataContext db = new AptDataContext()) 
    { 
     var apt = from Apt in db.Apt 
        join Doctor in db.Doctor on Apt.DoctorId equals Doctor.Id 

         where Apt.doctorId == iIndexDdl && Apt.IsAvailable == true && 
          Apt.dateApt >= DateTime.Now 
         select Apt 
         ; 

        ListView1.DataSourceID = null; 
        ListView1.DataSource = apt; 

        int numberOfRecords = apt.Count(); 
        if (numberOfRecords == 0) 
        { 
         lblMessage.Text = "No Appointement are available"; 
        } 

        ListView1.DataBind(); 
    }; 
} 

Вот где кнопка определяютя в .aspx

<asp:DataPager ID="DataPager1" runat="server" > 
     <Fields> 
      <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" 
      ShowLastPageButton="True" /> 
     </Fields> 
    </asp:DataPager> 

ответ

2
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:ListView ID="ListViewPersons" runat="server" ItemPlaceholderID="ProductItem"> 
       <ItemTemplate> 
        <asp:Label runat="server" ID="LabelEmail" Text='<%# Eval("Email") %>'></asp:Label> 
        <asp:Label runat="server" ID="LabelName" Text='<%# Eval("Name") %>'></asp:Label> 
       </ItemTemplate> 
       <LayoutTemplate> 
        <asp:PlaceHolder runat="server" ID="ProductItem"></asp:PlaceHolder> 
       </LayoutTemplate> 
       <ItemSeparatorTemplate> 
        <hr /> 
       </ItemSeparatorTemplate> 
      </asp:ListView> 
      <asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListViewPersons" 
       onprerender="DataPager1_PreRender"> 
       <Fields> 
        <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" /> 
       </Fields> 
      </asp:DataPager> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ListViewPersons" /> 
     </Triggers> 
    </asp:UpdatePanel> 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindListView();     
     } 
    } 

    private void BindListView() 
    { 
     List<Person> persons = new List<Person>(); 
     for (int i = 0; i < 30; i++) 
     { 
      Person aPerson =new Person(); 
      aPerson.Email = "Email" + i.ToString(); 
      aPerson.Name = "Name" + i.ToString(); 
      persons.Add(aPerson); 
     } 

     ListViewPersons.DataSource = persons; 
     ListViewPersons.DataBind(); 
    }   

    public class Person 
    { 
     public string Name { get; set; } 
     public string Email { get; set; } 
    } 

    protected void DataPager1_PreRender(object sender, EventArgs e) 
    { 
     BindListView(); 
    } 

http://www.codeproject.com/Questions/513399/UpdateplusPanelplusdataplusisplusnotplusrefreshing

http://ajax.net-tutorials.com/controls/updatepanel-control/

+0

@Kaplan, где я добавляю это в user3127986

+0

Я добавил это но иногда после нажатия на кнопку ничего не освежает? Есть идеи? не имеет никакого отношения к AJAX? – user3127986

+0

Это пример кода, который вы можете адаптировать для своего кода. – Kaptan

1

1) Вы уверены, что есть больше записей для извлечения? Возможно, вы находитесь в конце списка.

2) Используйте режим отладки в вашем браузере. Может возникнуть ошибка, которая будет выталкивать ваш AJAX после первого обновления из раскрывающегося списка.

3) Обратите внимание, какие элементы управления находятся внутри панели обновления, а какие элементы управления являются триггерами для обновления.

Вы должны демонстративно опубликовать свой код разметки. Проблема, скорее всего, связана с вашей разметкой или подключением элементов управления и событий.

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