2012-03-29 2 views
0

Es gibt ein einfaches Formular mit 6 Dropdown-Listen und einer Gridview. Wenn eine der Dropdownlisten den Wert ändert, wird das Raster durch Ändern des Auswahlbefehls gefiltert. Ein Benutzer kann auf einer anderen Seite durch eine Reihe des Rasters navigieren.Übergeben von Werten von Querystring an Dropdown-Listen und Aktualisieren des Rasters if! Ispostack

Von der anderen Seite hat ein Benutzer eine Zurück-Schaltfläche, die die Seite mit einem Querystring lädt, der die Werte der Dropdown-Listen enthält.

Ich möchte 2 Dinge erreichen:

1) Um die Werte in den Dropdownlists zu setzen. Das habe ich leicht gemacht.

2) Die nächste Sache ist, dass das Raster Daten basierend auf diesen Werten zeigt. das ist seine normale Operation.

Ich dachte, wenn ich den folgenden Code in die Seitenladung hinzufügen würde den Trick tun, aber es nicht. Ich habe versucht, alle Ereignisse, aber keine luck.I können die Dropdownlists zu erhalten, um den Wert zu halten ich will aber das Raster zeigt alle Datensätze:

if (!IsPostBack) 
    { 
     if (Request.QueryString["ret"] != null) 
     { 
      string[] retvalues = Request.QueryString["ret"].Split('_'); 
      Update_Search(retvalues); 
      dsTodo.SelectCommand = dsTodo.SelectCommand + Build_Where(); 
      GridView1.DataBind(); 
     } 

    } 

Die letzten zwei Linien auf den Dropdownlists in den selectedvaluechange Veranstaltungssauswahl existieren und sie funktionieren gut um das Gitter im normalen Betrieb zu filtern.

Antwort

0

Sie setzen SelectCommand, aber Sie führen es nicht aus. Tun Sie dies:

dsTodo.SelectCommand = dsTodo.SelectCommand + Build_Where(); 
dsTodo.Select(DataSourceSelectArguments.Empty); 
GridView1.DataBind(); 

das ist vorausgesetzt, dass die DataSourceID Eigenschaft des GridView1 auf dsTodo gesetzt.

+0

nichts geändert .... Ich fand heraus, dass mein Problem in einem anderen Bereich liegen kann ... Obwohl ich die Querystring-Werte in einem Array bekomme, scheint es, dass ich Probleme habe, sie in der Dropdown-Liste zu setzen .... i verwende srProject.Items.FindByValue (retvalues ​​[0] .ToString()). Selected = true; um die Dropdownlisten jetzt zu füllen, aber ich kann sie nicht ausgewählt sehen und werde nicht an den Selectcommand übergeben .... danke trotzdem denke ich, dass ich mehr recherchieren kann und eine andere Frage öffne :( – e4rthdog

+0

@ e4rthdog was auch immer das Problem ist, reicht es nicht aus zu setzen der 'SelectCommand' zur' SqlDataSource', müssen Sie ihn ausführen, indem Sie die 'Select' Methode aufrufen und dann die' GridView' binden. Viel Glück. – Icarus

Verwandte Themen