locked
GridView soll ID für zweites GridView liefern RRS feed

  • Frage

  • Hallo Leute!

    Ich habe ein GridView in welchem ich ein Produkt auswähle. Nach der Auswahl soll ein zweites GridView sichtbar werden, dass die Unterprodukte anzeigt welche man auch löschen/editieren und erweitern können soll. Das zweite GridView ist mit einer SQLDataSource verbunden und der SelectCommand enthält ein "WHERE [ID] = @ID". Im FormParameter kann ich ja jetzt ein FormField angeben, damit diese ID versorgt wird.

    Was gebe ich jetzt dem FormField an? Ich kann ja nicht schreiben FormField="ctl00$IntranetContent$MyGrid" . Wie komme ich auf die ID welche im ersten GridView ausgewählt wurde?

    Vielen Dank schon einmal im voraus für Eure Hilfe!

    lg

    Jörg

     

    Donnerstag, 12. August 2010 08:34

Alle Antworten

  • Hallo Jörg,

    Ich habe ein GridView in welchem ich ein Produkt auswähle. Nach der Auswahl soll ein zweites GridView sichtbar werden, dass die Unterprodukte anzeigt welche man auch löschen/editieren und erweitern können soll. Das zweite GridView ist mit einer SQLDataSource verbunden und der SelectCommand enthält ein "WHERE [ID] = @ID". Im FormParameter kann ich ja jetzt ein FormField angeben, damit diese ID versorgt wird.

    Was gebe ich jetzt dem FormField an? Ich kann ja nicht schreiben FormField="ctl00$IntranetContent$MyGrid" . Wie komme ich auf die ID welche im ersten GridView ausgewählt wurde?

    ehrlich gesagt solltest Du den Mist (SqlDataSource und Co.) wegschmeißen und es lieber richtig machen. Aber da Du ja nunmal damit arbeitest ... :)

    Du kannst das Grid dort nicht angeben, weil das kein Formularelement (wie bspw. eine TextBox, ListBox, ...) ist. An das Element im GridView kämst Du auch nicht ran, weil das so nicht bekannt ist und nur im GridView selbst dynamisch aufgebaut wird (wenn Du bspw. dort eine listBox einbauen würdest).

    In deinem Fall solltest Du im SelectedIndexChanged Event des GridView Controls den Wert auslesen und dann manuell an das SqlDataSource Control übergeben.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 12. August 2010 09:23
    Moderator
  • Hallo Stefan!

    Danke für Deine rasche Hilfe!

    Ich habe es zuerst bereits so gemacht, dass ich im SelectedIndexChanged ein DataSource und ein DataBind an das zweite GridView mache. Das hat auch bestens funktioniert. Nur wenn ich dann editieren wollte passierte folgendes: Die GridView Zeile wurde dunkelgrau aus den Zellen wurden editierbare Felder, allerdings ohne Inhalt, also der Wert der vorher drinnen war wurde nicht angezeigt. Außerdem mußte ich zwei Mal auf den "Bearbeiten" Link klicken, damit sich überhaupt was tat. Weis der Kuckuck was ich da falsch gemacht habe.

    Also hab ich mir gedacht: wenn Du es händisch nicht hin bekommst, dann Versuch es doch mit dem Standard und kam so auf das ID-Problem.

    Habe mir jetzt Deinen Rat zu Herzen genommen und einfach beim SelectedIndexChanged / RowEditing/RowCancelEditing/... u.s.w. der SQLDataSource über den SelectCommand den Select mit der ausgewählten ID des ersten GridViews mitgegeben und ein DataBind() gemacht. Funktioniert jetzt super.

    Herzlichen Dank nochmal,

    Jörg

    Donnerstag, 12. August 2010 13:58