Beantwortet jQuery simpleModal und Paramterübergabe

  • Montag, 11. März 2013 21:19
     
     

    Hallo,

    ich habe von jquery fast kaum eine Ahnung.

    Ich möchte lediglich über ein Gridview oder ein Listview einen Datensatz in einem Popup ausgeben. Bisher habe ich immer den Modalpopupextender dafür genutzt.

    Jetzt habe ich mir testweise mal ein jQuery simplemodal heruntergeladen und eingebaut.
    Simplemodal

    Ich möchte jetzt gerne einen Parameter an das <div> übergeben. Ich weiß allerdings nicht wie. Ich habe es mit einem commandargument probiert und auch mit einem Queystring. Aber das funktioniert nicht, weil es ja serverseitig übergeben wird.

    Hat jemand einen kleinen Ansatz für mich, wie ich vorgehen könnte oder ist dies nicht das geeignete Element für mich?


    Liebe Grüße, die Luzie!

Alle Antworten

  • Dienstag, 12. März 2013 09:51
    Moderator
     
     Beantwortet

    Hallo Luzie,

    es gibt hier keinen PostBack bzw. ein erneutes Laden der Seite. Daher kannst Du auch nichts im QueryString oder im Post übergeben.

    jQuery arbeitet rein clientseitig. D.h. es wird hier überhaupt kein Roundtrip zum Server durchgeführt, bei dem Du irgendwas auslesen und an den Client senden könntest.

    Dennoch ist jQuery sicher die erheblich bessere Wahl (insbesondere gegenüber dem Ajax Control Toolkit)

    Es gibt nun mind. zwei Varianten, wie man das von dir gewünschte lösen kann:

    Variante 1: Laden des gesamten HTML Codes für die formatierte Ausgabe der Werte im Dialog

    Hierbei müsstest Du eine Webservicemethode bereitstellen, die dann bspw. die ID des Datensatzes annimmt und einen String zurückgibt, der den kompletten HTML Code für die Anzeige im Dialog beinhaltet.

    Ein Beispiel hierfür findest Du hier:

      http://openbook.galileocomputing.de/asp/asp160001.htm#Rxxasp16334EineneinfachenWebServiceerstellenundanbieten

    Per $( "#Element" ).html( <Variable> ); kannst Du den Inhalt dann zuweisen.

    Variante 2: Laden des Datensatzes als Objekt und dynamisches Binden der Eigenschaftswerte an Elemente (bspw. <span>, ...)

    Wenn Du den Datensatz nicht schon komplett als Javascriptobjekt vorliegen hast, müsstest Du dafür sorgen, dass das nun so ist. Das kannst Du entweder gleich so machen, dass Du alle Datensätze für das Grid von einem Webservice lädst und dann clientseitig "nur" noch den richtigen für den jQuery Dialog verarbeitest oder - wenn das zu viele Daten wären - lädst du vor dem Öffnen des Dialogs den einen Datensatz.

    Ich würde dir knockout.js ans Herz legen, wenn Du mehr damit machen willst.

      http://knockoutjs.com/examples/grid.html

    Allerdings ist das eine komplett andere Vorgehensweise als die, die Du bisher kennst. Lies dich einfach mal ein wenig dort ein. Sollte das deinen Geschmack treffen, können wir gerne tiefer einsteigen.


    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, 14. März 2013 19:32
     
     

    Hallo Stefan,

    danke für die Hinweise.

    Mit Webservices habe ich mich bisher nur am Rande beschäftigt, aber vielleicht ist es jetzt eine gute Gelegenheit, das ganze zu vertiefen. Wenn man weiß, was man damit machen kann, ist es halt einfacher. Ich möchte auch mehr mit jQuery machen, aber ich muss auch kein Experte werden. Aus dem Grunde suche ich immer nach Beispielen, um zu sehen, wie andere es machen.


    Liebe Grüße, die Luzie!

  • Donnerstag, 14. März 2013 23:54
    Moderator
     
     

    Hallo Luzie,

    falls Du dich mit dem Thema beschäftigen willst, schau dir auch mal:

      http://devangelist.de/

    an. Da findest Du einige gute Postings dazu, wie bspw.:

      http://devangelist.de/asp-net-webservice-jquery/

      http://devangelist.de/knockout-asp-net-mvc-mvvm-patter/

      ...


    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

  • Samstag, 16. März 2013 15:59
     
      Enthält Code
    Hallo Stefan,

    Danke für die Links und auch für Deine Mühe.

    Das scheint sehr interessant und auch spannend zu sein. Ich habe jetzt auch mal einen SageHallo Webservice erstellt, referenziert und eingebunden.

    Jetzt ist mir allerdings nicht wirklich klar, was die Vorteile eines Webservices gegenüber einer normalen Klasse sind. Es gibt zwar Beiträge darüber, im iNet, aber es ist sehr mühsam, diese zu verfolgen, wenn man den Sinn dahinter nicht versteht. Mir fehlen da einfach die Basics, in Bezug auf Webservices und insbesondere im Bereich jQuery.

    Deine geposteten Links mit Beispielen überfordern mich zur Zeit komplett. Es sind nur Auszüge aus einem  "Großen Ganzen", gedacht für Leute, die ständig damit arbeiten müssen und für diese mit Sicherheit eine hervorragende Unterstützung. Ich aber muss an dieser Stelle erst einmal passen. Ich verstehe die Beiträge nicht. Klar, ich möchte alles verstehen und lernen, aber ich weiß nicht, ob sich dieser Aufwand für 4-6 kleine Anzeigen, dessen Content ich im einem jQuery-Dialog laden möchte, lohnt. Ich kann das html zwar vorladen, auch über einen Webservice, aber dann hört es auch auf. Da ich auch nie wieß, wieviele Anzeigen es sind, muss ich die jQuery-Funktion so umschreiben, dass die IDs der Container auch alle funktionieren. Und da finde ich keine Beispiele.
     
      jQuery(function ($) {
                // Load dialog on page load
                //$('#basic-modal-content').modal();
    
                // Load dialog on click
                $('<%#basicmodal.ClientID%> .basic').click(function (e) {
                    $('<%#basicmodalcontent.clientID%>').modal();
    
                    return false;
                });
            });



    Liebe Grüße, die Luzie!

  • Sonntag, 17. März 2013 09:17
     
     

    Hallo

    ich habe noch ein anderes Scirpt gefunden, jQueryUI Fancybox. Da gibt es auch einen inline-Dialog. Das ist einfacher. Der Funktionsauftruf geht über ein "class" des Links und die Ids kann ich dann mit lfd. Nummer generieren. Das passt.


    Liebe Grüße, die Luzie!