2011-03-21 163 views
2

这似乎是一个容易提出的问题,但我无法在GridView中显示项目。这里是我的代码:GridView PageIndexChanging不工作

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(); 
     } 
    } 

} 

这里是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> 

的问题是,我的GridView控件不扔我任何异常,并通过断点,我可以看到,该函数被调用在代码后面。

我的排序也没有工作:(

+0

难道您发布的标记代码为那么你需要调用gvAgentList_PageIndexChanging中的BindData方法 – WorldIsRound 2011-03-21 19:24:27

+0

@HelloWorld:我在gvAgentList_PageIndexChanging中调用了DataBind方法 – 2011-03-21 19:31:54

+0

What abou当页面索引改变时,将数据源设置为网格? – WorldIsRound 2011-03-21 19:36:24

回答

7

尝试GridView控件如的PageIndex = “10”

protected void gvAgentList_PageIndexChanging (object sender, GridViewPageEventArgs e) 
    { 

     gvAgentList.PageIndex = e.NewPageIndex; 
     BindData(); 
    } 
+0

谢谢!我知道我错过了一些愚蠢的东西。工作! – 2011-03-21 19:51:10

+0

如果我想在我的GridView中进行搜索,应该如何处理? – 2011-03-21 19:53:28