2016-05-18 11 views
1

Ich möchte eine Paginierungsfunktion in meinem Gridview haben. Ich habe "allow pagination = true" gesetzt und habe dafür etwas Code von aspsnippets.com kopiert. Aber irgendwie funktioniert mein Code nicht. Hier ist meine HTML-Gridview:Paginierung in gridview html asp.net

Übrigens ist meine Gridview asp.content insied. (Nicht sicher, ob es etwas mit ihm hat, warum funktioniert es nicht)

<asp:GridView ID="gvCustomerOrders" runat="server" Width="940px" HorizontalAlign="Center" 
      AutoGenerateColumns="false" AllowPaging="True" CssClass="table table-hover table-striped" OnPageIndexChanging="OnPaging" 
      onselectedindexchanged="gvCustomerOrders_SelectedIndexChanged"> 

    <Columns> 
     <asp:BoundField DataField ="Id" HeaderText ="Id" ItemStyle-Width="100" /> 
     <asp:BoundField DataField ="CustomerName" HeaderText ="Name" />  
     <asp:BoundField DataField ="CustomerPhoneNo" HeaderText ="PhoneNo" /> 
     <asp:BoundField DataField ="TotalProducts" HeaderText ="Products" /> 
     <asp:BoundField DataField ="TotalPrice" HeaderText ="Price" /> 


     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl ='<%# Eval("Id", "~/Admin/OrderDetails.aspx?Id={0}") %>' 
            Text="View Details" Target="_blank" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

</asp:GridView> 

Hier ist der Code hinter:

private void GetOrderList() 
{ 
    ShoppingCart k = new ShoppingCart() 
    { 
     Flag = 0 
    }; 
    DataTable dt = k.GetOrderList(); 

    gvCustomerOrders.DataSource = dt; 
    gvCustomerOrders.DataBind(); 
    gvCustomerOrders.HeaderRow.TableSection = TableRowSection.TableHeader; 
} 
protected void OnPaging(object sender, GridViewPageEventArgs e) 
{ 
    gvCustomerOrders.PageIndex = e.NewPageIndex; 
    this.GetOrderList(); 
} 

Editiert:

i das Programm gearbeitet gemacht haben. aber leider habe ich diese Zeile von Codes löschen:

if (Session["IslandGasAdminST"] != null) 
     { 

      if (!IsPostBack) 
      { 
       Label1.Text = "- Supply & Transport Manager"; 
       GetOrderList(); 
      } 

      else 
      { 
       Response.Write("<script>alert('Supply & Transport Manager credentials needed'); window.location.href='LogIn.aspx';</script>"); 
      } 
     } 
     else 
     { 
      Response.Write("<script>alert('Supply & Transport Manager credentials needed'); window.location.href='LogIn.aspx';</script>"); 
     } 

es so sein sollte:

protected void Page_Load(object sender, EventArgs e) 
    { 

      if (!IsPostBack) 
      { 
       Label1.Text = "- Supply & Transport Manager"; 
       GetOrderList(); 
      } 


    } 

irgendwelche Tricks, wie ich die Sitzung Teil umsetzen können? für ein bestimmtes Login kann nur diese Seite?

Antwort

0

es herausgefunden. Der endgültige Code lautet:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["IslandGasAdminST"] != null) 
     { 

      if (!IsPostBack) 
      { 
       Label1.Text = "- Supply & Transport Manager"; 
       GetOrderList(); 
      } 

      //else 
      //{ 
      // Response.Write("<script>alert('Supply & Transport Manager credentials needed'); window.location.href='LogIn.aspx';</script>"); 
      //} 
     } 
     else 
     { 
      Response.Write("<script>alert('Supply & Transport Manager credentials needed'); window.location.href='LogIn.aspx';</script>"); 
     } 
    } 
1

Vielleicht möchten Sie überprüfen, ob beim Paging Client-seitige Ausnahmen ausgelöst werden. Mit Ihrem eigenen Beispiel konnte ich ohne Probleme auf der Seite hin und her navigieren.

Der einzige Unterschied, den ich in meinem Beispiel gemacht habe, war - einige Testdaten einrichten und PageSize = 1 setzen.

<asp:GridView ID="gvCustomerOrders" runat="server" HorizontalAlign="Center" 
       AutoGenerateColumns="false" AllowPaging="True" CssClass="table table-hover table-striped" OnPageIndexChanging="OnPaging" 
       OnSelectedIndexChanged="gvCustomerOrders_SelectedIndexChanged" PageSize="1"> 
       <Columns> 
        <asp:BoundField DataField="Id" HeaderText="Id" /> 
        <asp:BoundField DataField="CustomerName" HeaderText="Name" /> 
        <asp:BoundField DataField="CustomerPhoneNo" HeaderText="PhoneNo" /> 
        <asp:BoundField DataField="TotalProducts" HeaderText="Products" /> 
        <asp:BoundField DataField="TotalPrice" HeaderText="Price" /> 
        <asp:TemplateField> 
         <ItemTemplate> 
          <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Id", "~/Admin/OrderDetails.aspx?Id={0}") %>' 
           Text="View Details" Target="_blank" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 

-Code hinter:

private void GetOrderList() 
    { 
     DataTable dt = GetOrderListData(); 
     gvCustomerOrders.DataSource = dt; 
     gvCustomerOrders.DataBind(); 
     gvCustomerOrders.HeaderRow.TableSection = TableRowSection.TableHeader; 
    } 

    private DataTable GetOrderListData() 
    { 
     var dt = new DataTable(); 
     dt.Columns.Add("Id", typeof(int)); 
     dt.Columns.Add("CustomerName"); 
     dt.Columns.Add("CustomerPhoneNo"); 
     dt.Columns.Add("TotalProducts", typeof(int)); 
     dt.Columns.Add("TotalPrice", typeof(decimal)); 
     dt.Rows.Add(1, "TEST1", "123123", 10, 100M); 
     dt.Rows.Add(2, "TEST2", "123123", 20, 200M); 
     dt.Rows.Add(3, "TEST3", "123123", 30, 300M); 
     dt.Rows.Add(4, "TEST4", "123123", 40, 400M); 
     return dt; 
    } 

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

Vielen Dank, Sir, dass Sie sich die Zeit genommen haben, mir zu helfen. Ich habe das Problem herausgefunden. Es ist in dem Sitzungsteil, den ich erklärt habe. wird die Frage für Sie bearbeiten Herr –

+0

Ich habe den Sitzungsteil Sir gelöscht, in dem ich für ein bestimmtes Login nur diese Seite sehen muss. –