GridView PageIndexChanging Ne Fonctionne Pas

Cela semble être une question facile à poser, mais je ne suis pas en mesure d'afficher les éléments dans le contrôle GridView. Voici mon code:

 public partial class TestList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{   TestProject.DataAccess.Repository.Instance.Initialize(Settings.Default.TestConnection);
BindData();
}
}
private void BindData()
{
//Restriction Info!!
gvAgentList.DataSource = EntityRegistration.DataAccess.Repository.Instance.GetData();
gvAgentList.DataBind();
}
protected void gvAgentList_PageIndexChanging (object sender, GridViewPageEventArgs e)
{
gvAgentList.PageIndex = e.NewPageIndex;
gvAgentList.DataBind();
}
private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;
switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = "ASC";
break;
case SortDirection.Descending:
newSortDirection = "DESC";
break;
}
return newSortDirection;
}
protected void gvAgentList_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = gvAgentList.DataSource as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
gvAgentList.DataSource = dataView;
gvAgentList.DataBind();
}
}
}

Voici le balisage de la GridView:

    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<p>
Agent Lists:</p>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView runat ="server" ID = "gvAgentList" 
AllowPaging = "True" 
AutoGenerateSelectButton="True" AllowSorting="True" BackColor="#E8E8E8" 
BorderColor="#003399" BorderStyle="Solid" BorderWidth="1px" Height="375px" 
Width="731px" OnPageIndexChanging = "gvAgentList_PageIndexChanging" 
OnSorting="gvAgentList_Sorting" >
<AlternatingRowStyle ForeColor="#0066CC" />
<HeaderStyle ForeColor="#3366FF" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>

Le problème est que mon GridView n'est pas en me jetant aucune exception, et grâce à des points d'arrêt, je peux voir que la fonction est appelée dans le code derrière.

Mon tri est également ne fonctionne pas 🙁

  • Pourriez-vous poster votre marque de code ainsi? Vous avez besoin d'invoquer la BindData méthode dans gvAgentList_PageIndexChanging
  • J'ai appelé la méthode DataBind dans gvAgentList_PageIndexChanging
  • Ce que sur la définition de la source de données pour la grille, alors que l'index de la page est modifié?
  • J'ai obtenu ce que vous dites. Dois-je aller de l'avant et le faire à partir de l'INTERFACE utilisateur (GridView) ou de cette façon?
InformationsquelleAutor RG-3 | 2011-03-21