2013-09-22 5 views
3

Появляется исключение, говоря, что я не могу использовать пейджинг на стороне сервера.Переплет данных в gridview. Как использовать пейджинг?

conn.Open(); 
string querstring = "select * from gt_transaction_log where LogTimeStamp between '2013-09-19 07:06:00.077' and '2013-09-19 10:28:25.163' "; 
SqlCommand cmd = new SqlCommand(querstring, conn); 
GridView1.EmptyDataText = "no record found"; 
GridView1.DataSource = cmd.ExecuteReader(); 
GridView1.DataBind(); 

GridView1.AllowPaging = true; 
GridView1.PageSize = 5; 
+1

Попробуйте переставить последние две команды выше метода DataBind. –

+0

Посмотрите этот образец: http://msdn.microsoft.com/en-us/library/aa479347.aspx –

ответ

2

Вы не можете использовать подкачку с DataReader. Поэтому проблема с этой линии:

GridView1.DataSource = cmd.ExecuteReader();

Вы должны заполнить GridView с использованием Dataset или Datatable использованием DataAdapter.

Пример:

// Использование DataTable

string querstring = "select * from gt_transaction_log where LogTimeStamp between 
        '2013-09-19 07:06:00.077' and '2013-09-19 10:28:25.163' "; 
SqlDataAdapter adapter = new SqlDataAdapter(querstring , conn); 
DataTable dt = new DataTable(); 
adapter.Fill(dt); 
GridView1.DataSource=dt; 
GridView1.DataBind(); 

// Использование DataSet

string querstring = "select * from gt_transaction_log where LogTimeStamp between 
        '2013-09-19 07:06:00.077' and '2013-09-19 10:28:25.163' "; 
SqlDataAdapter adapter = new SqlDataAdapter(querstring , conn); 
DataSet ds = new DataSet(); 
adapter.Fill(ds, "Table_Name"); // you can supply a table name 
GridView1.DataSource=ds; 
GridView1.DataBind(); 
1

на просмотре дизайна, нажмите Gridview> позволяют пейджинг или использовать SqlDataSource вместо этого, а затем позволить пейджинговой

2

Вы должны указать, если вы хотите подкачки в пользовательском интерфейсе страницы, то есть:

<asp:GridView ID="grid" runat="server" AllowPaging="true" PageSize="5" OnPageIndexChanging="grid_PageIndexChanging" /> 

Затем в файле CS:

protected void grid_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     try 
     { 
      grid.PageIndex = e.NewPageIndex; 
      BindGrid(); 
     } 
     catch (Exception ex) 
     { 
     } 
    } 

Где метод BindGrid() является тот, в котором мы связать сетку.

-2

Вы можете попробовать использовать этот код .......

String constring = "Data Source=dsdsdsds;Initial Catalog=table;User Id=uid;Password=pass"; 
SqlConnection conqav = new SqlConnection(constring); 
String takeffty = "select top 10 * from table"; 
conqav.Open(); 
SqlCommand comqav = new SqlCommand(takeffty,conqav); 
GridView1.DataSource = comqav.ExecuteReader(); 
GridView1.DataBind(); 
conqav.Close(); 
Смежные вопросы