2013-04-09 2 views
0

У меня есть вид сетки с этим:Как пейджинговой GridView

<asp:GridView ID="GridViewCosts" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" ShowFooter="True" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False" OnRowDeleting="GridViewCosts_RowDeleting" Width="387px" OnSelectedIndexChanged="GridViewCosts_SelectedIndexChanged" AllowPaging="true" AllowSorting="true" 
PageSize="5" > 

, но это дает мне сообщение об ошибке: The data source does not support server-side data paging.

в коде позади у меня есть что-то вроде этого:

GridViewCosts.DataSource = rdr; 
Line 55:     GridViewCosts.DataBind(); 

как для подкачки моего gridView, у которого нет данныхSource

UPDATE Я изменяю у меня есть этот

<asp:GridView ID="GridViewCosts" runat="server" CellPadding="4" 
     ForeColor="#333333" GridLines="None" ShowFooter="True" ShowHeaderWhenEmpty="True" 
     AutoGenerateColumns="False" OnRowDeleting="GridViewCosts_RowDeleting" Width="387px" 
     OnSelectedIndexChanged="GridViewCosts_SelectedIndexChanged" 
     OnPageIndexChanging="GridViewCosts_PageIndexChanging" 

     PageSize="5" > 

в коде есть это:

public void getViewProfit() 
     { 
      string connectionString = cs.getConnection(); 
      string query = "select Id ,name,value,Description,DateCreate from AllCostView where IdUser = '" + cui.getCurrentId() + "'"; 
      using (SqlConnection myConnection = new SqlConnection(connectionString)) 
      { 
       myConnection.Open(); 
       SqlCommand command = new SqlCommand(query, myConnection); 
       using (SqlDataReader rdr = command.ExecuteReader()) 
       { 
        GridViewCosts.DataSource = rdr; 
        GridViewCosts.DataBind(); 
       } 

      } 
     } 

    protected void GridViewCosts_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      GridViewCosts.PageIndex = e.NewPageIndex; 
      getViewProfit(); 
     } 

там нет ошибок больше, но до сих пор не показывает пейджинг

ответ

1

Если вы использовали DataReader да, пожалуйста? используйте DataSet/DataTable вместо Datareader. Поскольку DataReader не поддерживает пейджинг и возможности сортировки, то DataReader извлекает поток ReadOnly, ForwardOnly данных из базы данных ..

И вы пропустили pageindexChanging свойство GridView в,

для смотрите ниже

<asp:GridView ID="GridViewCosts" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" ShowFooter="True" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False" OnRowDeleting="GridViewCosts_RowDeleting" Width="387px" OnSelectedIndexChanged="GridViewCosts_SelectedIndexChanged" AllowPaging="true" AllowSorting="true" 
PageSize="5" **OnPageIndexChanging="GridViewCosts_PageIndexChanging"**> 

код позади:

protected void GridViewCosts1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridViewCosts.PageIndex = e.NewPageIndex; 

    //rebind your gridview .  

} 
+0

я обновить мой вопрос смотрите его – Krasimir

+0

ли ты связать GridView внутри IsPostBack в страницу loage для! void page-load() { if (! IsPostBack) getViewProfit(); } } – 2013-04-09 20:05:18

Смежные вопросы