J'ai créé:
Que faire pour cela?
J'ai créé un fichier d'assistance SQL pour le code de connexion à la base de données et en appelant cette méthode, sans utiliser sqldatasource pour la connexion.
Quand j'essaie de faire de la pagination, obtenir erreur :
L'événement déclenché PageIndexChanging GridView 'GridView1' qui n'était pas Géré.
Vous devez déclarer une méthode sur votre code derrière qui gère l'événement PageIndexChanging.
Quelque chose de semblable à ceci:
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();
}
Fournissant un exemple de code:
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();
}
Et voici le balisage:
<asp:GridView OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="true" PageSize="10" ID="GridView1" runat="server" AutoGenerateColumns="true">
Produit ceci:
Pour la pagination, vous pouvez utiliser OnPageIndexChanging pour cela ....
Par exemple
vous devez utiliser OnPageIndexChanging = "gvdetails_PageIndexChanging" dans votre GridView ...
Vous devez écrire ci-dessous le code dans event dans le code behind like
protected void gvdetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvdetails.PageIndex = e.NewPageIndex;
BindData();
}
Pour plus de détails, vous pouvez vérifier le lien ci-dessous ici, je me sers de la page changement d'index dans mon article ...
J'espère que cela vous aidera ... Partagez-le avec d'autres ... Merci!
C'est la réponse finale:
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
vous ajoutez simplement ceci à votre code:
protected void GridViewTrsEmail_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridViewTrsEmail.PageIndex = e.NewPageIndex;
GridViewTrsEmail.DataBind();
}
Pour résoudre ce problème, je devais examiner de plus près ma source de données et mon datakeys. J'ai un ensemble d'enregistrements renvoyés par SQL Server et ce que je faisais, je les lie à un POCO. Cette classe avait plusieurs propriétés publiques de type Integer. Ces entiers étaient mes datakeys sur la grille. J'ai remplacé leur type par une chaîne pour contourner le problème de casting.