webentwicklung-frage-antwort-db.com.de

Das GridView 'GridView1' hat das Ereignis PageIndexChanging ausgelöst, das nicht behandelt wurde

Ich habe erschaffen:

  • eine Masterseite und eine Inhaltsseite namens Detail.
  • Klicken Sie auf ein Ereignis, um die Daten in der Rasteransicht anzuzeigen.
  • In der Rasteransicht werden Spalten automatisch generiert.
  • Ich wollte 11 Spalten in der Rasteransicht anzeigen, aber es ist mehr als die Größe von Seite .

Was soll ich dafür tun?

Ich habe eine SQL-Helper-Datei für den Datenbankverbindungscode und das Aufrufen dieser Methode erstellt und nicht die Verbindung sqldatasource verwendet.

Wenn ich versuche, paging zu machen, bekomme error

Das GridView 'GridView1' hat das Ereignis PageIndexChanging ausgelöst, das nicht Behandelt wurde.

11
Jui Test

Sie müssen in Ihrem Code hinter dem Code eine Methode deklarieren, die das PageIndexChanging -Ereignis behandelt.

Etwas Ähnliches:

protected void GridView1_PageIndexChanging (object sender, GridViewPageEventArgs  e)
{
    GridView1.PageIndex = e.NewPageIndex;
    bindGridView(); //bindgridview will get the data source and bind it again
}

private void bindGridView()
{
     GridView1.DataSource=getData();
     GridView1.DataBind();
}

Bereitstellen von Beispielcode:

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        bindGridView(); //bindgridview will get the data source and bind it again
    }

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

    }
    //this is some sample data 
    private void bindGridView()
    {
        DataTable t = new DataTable();
        t.Columns.Add("Col1");
        t.Columns.Add("Col2");
        DataRow r = null;
        for (int i = 0; i < 25; i++)
        {
            r = t.NewRow();
            r.ItemArray = new object[] { "Val" + i, " Another " + i };
            t.Rows.Add(r);
        }
        GridView1.DataSource = t;
        GridView1.DataBind();
    }

Und das ist das Markup:

<asp:GridView OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="true" PageSize="10" ID="GridView1" runat="server" AutoGenerateColumns="true">

Produziert das:

enter image description here

22
Icarus

Für Paging können Sie dazu OnPageIndexChanging verwenden ....

Zum Beispiel 

sie müssen OnPageIndexChanging = "gvdetails_PageIndexChanging" in Ihrer GridView verwenden ...

Sie müssen unter Code in event hinter wie Code schreiben

protected void gvdetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gvdetails.PageIndex = e.NewPageIndex;
    BindData();
}

Für weitere Informationen können Sie den untenstehenden Link überprüfen. Ich verwende die Seite Indexänderung in meinem Artikel ...

Hier verwende ich PageIndexChange

Ich hoffe, dieser Wille hilft dir ... Teile es mit anderen ... Danke!

2
user2508590

Dies ist die endgültige Antwort:

Imports System.Collections.Generic ' library

Protected Sub grdEmployees_PageIndexChanging1(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewPageEventArgs) Handles grdEmployees.PageIndexChanging
    grdEmployees.PageIndex = e.NewPageIndex
    LoadEmployeeList() 'FUNCTION FOR DATASET
    grdEmployees.DataBind()

End Sub
1

sie fügen dies einfach in Ihren Code ein:

protected void GridViewTrsEmail_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewTrsEmail.PageIndex = e.NewPageIndex;
    GridViewTrsEmail.DataBind();


}
0
Imad

Um dies zu beheben, musste ich meine Datenquelle und Datenaufzeichnungen genauer betrachten. Ich habe eine Reihe von Datensätzen, die von SQL Server zurückgegeben werden, und ich habe sie an ein POCO gebunden. Diese Klasse hatte mehrere öffentliche Eigenschaften vom Typ Integer. Diese Ganzzahlen waren meine Daten in der Startaufstellung. Ich habe ihren Typ stattdessen durch eine Zeichenfolge ersetzt, um das Casting-Problem zu umgehen.

0
jagn