2015-08-23 3 views
2

У меня есть gridview, который должен разбиваться на страницы, но проблема в том, что когда я меняю страницу, весь gridview исчезает, я пытался evrything я нашел в Интернете, но без решения здесь мой кодgridview исчезает после смены страницы

<asp:GridView ID="ExistContents" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" 
    AllowPaging="true" PageSize="5" OnPageIndexChanging="ExistContents_PageIndexChanging" > 
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
    <Columns> 
     <asp:BoundField DataField="ContentID" HeaderText="id" /> 
     <asp:ImageField DataImageUrlField="TmpFilename" HeaderText="Image"> 
      <ControlStyle Height="64px" Width="96px" /> 
     </asp:ImageField> 
     <asp:BoundField DataField="Name" HeaderText="Name" /> 
     <asp:BoundField DataField="Description" HeaderText="Description" /> 
     <asp:BoundField DataField="Type" HeaderText="Type" /> 
     <asp:BoundField DataField="ContentID" HeaderText="id" Visible="false" ShowHeader="false" /> 
     <asp:TemplateField HeaderText="Delete"> 
      <ItemTemplate> 
       <asp:UpdatePanel runat="server"> 
        <ContentTemplate> 
         <asp:CheckBox runat="server" ID="ChBox1" OnCheckedChanged="ExistContents_CheckedChanged" AutoPostBack="True"/> 
        </ContentTemplate> 
       </asp:UpdatePanel> 

      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

    <EditRowStyle BackColor="#999999" /> 
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" CssClass="header"/> 
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
    <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
    <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
    <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
    <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
</asp:GridView> 

и вот обработчик события

protected void ExistContents_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{   
    ExistContents.PageIndex = e.NewPageIndex; 

    List<CONTENT> panier; 
    panier = (List<CONTENT>)Session["PANIER"]; 
    ExistContents.DataSource = panier; 
    ExistContents.DataBind(); 
} 

спасибо за вашу помощь

+0

установить propety в вашем GV ShowHeaderWhenEmpty = «истинных», что происходит, у него есть данные, когда вы меняете страницы? – saj

+0

он показывает только заголовок без строк данных, но я нашел решение проблемы. Фактически это была моя ошибка. Я должен сделать запрос linq в моем обработчике событий в качестве источника данных моего просмотра, спасибо за вашу помощь. – ADA15

ответ

0

здесь является ответом на этот ПРОБЛЕМЕ, Acctually мой источник данных был не сеанс, но LINQ запрос, поэтому я изменил его, и он прекрасно работает

и вот мой новый код

 protected void ExistContents_CheckedChanged(object sender, EventArgs e) 
    { 

     CheckBox chk = (CheckBox)sender; 
     GridViewRow gr = (GridViewRow)chk.Parent.Parent.Parent.Parent; 
     int id= Convert.ToInt32(gr.Cells[0].Text); 
     if (chk.Checked) 
      AddToCaddy(id, "DELETE"); 
     else 
      DeleteFromCaddy(id); 

     UpdatePanel.DataBind(); 
     UpdatePanel.Update(); 
    } 

только для информация, если вы делаете DataBind на ваш GridView в Page_Load внутри if (!IsPostBack), то вам нужно будет redefind в DataSource, но если you'r нет, то вам нужно всего лишь использовать эти функции

UpdatePanel.DataBind(); UpdatePanel.Update();

я надеюсь, что это помогает

0

Вы должны обращаться с инст PageIndexChanged событий Свинец.

pageIndexChanging выполнен с целью отменить пейджинг перед его выполнением.

+0

, поскольку я сказал, что нашел ответьте на это в моем комментарии, но спасибо вам в любом случае – ADA15

+0

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

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