2017-06-14 2 views
0

Ich habe einen SqlDataSource mit dieser Abfrage:SqlDataSource verloren die where-Klausel während Paging

SELECT [ProductName], [Debscription], [Price] FROM [MyDb] WHERE ([Date1] >= @Date1) ORDER BY [ProductName]"> 

Wenn ich die Seite zu laden, es funktioniert gut und zeigt mir nur die Produkte, die ich will. Wenn ich versuche, die Seite von GridView zu wechseln, und zum Beispiel auf Seite 2 gehe, wird die Seite aktualisiert und viele Seitenindizes generiert, wenn die Where-Klausel verloren geht.

Wie kann ich das lösen?

Ich dachte, dass die Anweisung automatisch gespeichert wurde, aber es ist nicht.

Wie kann ich die Where-Klausel während des Paging speichern?

Antwort

1

Für dynamisches Paging sollten Sie eine ObjectDataSource anstelle einer SqlDataSource verwenden.

1

Wenn das Grid Paging verarbeiten soll, binden Sie es an eine DataTable oder DataSet. Für die Ex:

private void Page_Load(object sender, System.EventArgs e) 
{ 
    if (!Page.IsPostBack) 
     BindData(); 
} 

private void BindData() 
{ 
    // Connect to the Database 
    SqlConnection myConnection = new SqlConnection(connection string); 

    // Retrieve the SQL query results and bind it to the DataGrid 
    string SQL_QUERY = "SELECT ProductName, UnitPrice, UnitsInStock " + 
        "FROM Products"; 
    SqlCommand myCommand = new SqlCommand(SQL_QUERY, myConnection); 

    // Use a DataTable – required for default paging 
    SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand); 

    DataTable myTable = new DataTable(); 
    myAdapter.Fill(myTable); 

    dgProducts.DataSource = myTable; 
    dgProducts.DataBind(); 
    myConnection.Close(); 
} 

https://msdn.microsoft.com/en-us/library/aa479006.aspx

+0

Während dieser Link, um die Frage zu beantworten, ist es besser, die wesentliche Teile der Antwort hier aufzunehmen und den Link zur Referenz. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/16419576) – Drise

+0

Ich war mir nicht sicher, ob die ursprüngliche Antwort/Verbindung die Frage genau beantwortete, also übersprang ich den Code. Mit Code aktualisiert. – wazz

Verwandte Themen