Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

JavaScript bei CheckBox in GridView

Letzter Beitrag 07-14-2006 9:47 von ChristophSchmid. 13 Antworten.
Seite 1 von 1 (14 Treffer)
Beiträge sortieren: Zurück Weiter
  • 07-13-2006 20:12

    JavaScript bei CheckBox in GridView

    Hallo

    Ich habe in einer GridView zwei Spalten mit CheckBoxes. Bei click auf
    die erste CheckBox in der Zeile soll die zweite aktiviert werden.
    Habe dazu mit onclick="..." eine JavaScript-Funktion, welches das machen
    soll. Wie kann ich aber dieser Funktion z.B. die Zeilen-ID übergeben,
    damit ich von da auf die andere CheckBox zugreiffen kann.
    Im ItemTemplate wollte ich es in etwa so machen:
    " onclick="alert('clickedEval("AUZ931") %>')" runat="server">

    Das gibt mir aber Fehler, weil das Tag nicht korrekt formatiert sei.

    Gruss Christoph
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 20:24 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Christoph Schmid schrieb:

    > " onclick="alert('clicked> Eval("AUZ931") %>')" runat="server">
    >
    > Das gibt mir aber Fehler, weil das Tag nicht korrekt formatiert sei.

    Viel einfacher.
    "
    onclick="checkBoxClick(this);"/>


    function checkBoxClick(ele)
    {
    var auz931 = ele.id.substring(4);
    alert(auz931);
    }


    --
    Freundliche Grüße

    Albert Weinert

    http://der-albert.com
    http://www.afterlaunch.de Die Community Konferenz nach dem Launch von Visual Studio 2008
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 20:34 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    ohne das runat?
    so sehe ich die CheckBox nähmlich gar nicht
    Zudem muss ich dann beim PostBack auf die CB's zugreiffen können.

    Albert Weinert schrieb:
    > Christoph Schmid schrieb:
    >
    >
    >> " onclick="alert('clicked>> Eval("AUZ931") %>')" runat="server">
    >>
    >> Das gibt mir aber Fehler, weil das Tag nicht korrekt formatiert sei.
    >>
    >
    > Viel einfacher.
    > "
    > onclick="checkBoxClick(this);"/>
    >
    >
    > function checkBoxClick(ele)
    > {
    > var auz931 = ele.id.substring(4);
    > alert(auz931);
    > }
    >
    >
    >
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 20:45 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Christoph Schmid schrieb:
    > ohne das runat?
    > so sehe ich die CheckBox nähmlich gar nicht
    > Zudem muss ich dann beim PostBack auf die CB's zugreiffen können.

    Natürlich mit runat, ist beim C&P über die Wupper gegangen.


    --
    Freundliche Grüße

    Albert Weinert

    http://der-albert.com
    http://www.afterlaunch.de Die Community Konferenz nach dem Launch von Visual Studio 2008
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 20:53 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Dann ist es eben fast das gleiche und ergibt den folgenden Fehler:
    Servertag wurde falsch formatiert.

    " onclick="checkBoxClick(this);" runat="server">

    Oder habe ich etwas übersehen?

    Gruss Christoph

    Albert Weinert schrieb:
    > Christoph Schmid schrieb:
    >
    >> ohne das runat?
    >> so sehe ich die CheckBox nähmlich gar nicht
    >> Zudem muss ich dann beim PostBack auf die CB's zugreiffen können.
    >>
    >
    > Natürlich mit runat, ist beim C&P über die Wupper gegangen.
    >
    >
    >
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 21:14 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Christoph Schmid schrieb:

    > Dann ist es eben fast das gleiche und ergibt den folgenden Fehler:
    > Servertag wurde falsch formatiert.
    >
    > " onclick="checkBoxClick(this);" runat="server">
    >
    > Oder habe ich etwas übersehen?

    Hm, dass die ID zur Compilezeit feststehen muss und nicht Bindable ist?
    Sonst ist das Control eh nicht wirklich ansprechbar. Auch könnte es
    daran liegen das in AUZ931 drin steht.

    Also dann ohne runat="server" und ohne sondern mit und
    auswertung per Hand, auf dem Server mit Request.Form[].

    Oder halt mit einem Repeater sowie arbeiten, und dort die
    "Zeile" festzuhalen die man dann per JavaScript ausliest oder setzt.
    Schwierig ne Lösung nun vorzuschlagen ohne zu wissen was Du genau willst.

    --
    Freundliche Grüße

    Albert Weinert

    http://der-albert.com
    http://www.afterlaunch.de Die Community Konferenz nach dem Launch von Visual Studio 2008
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 21:25 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    >

    > Also dann ohne runat="server" und ohne sondern mit und
    > auswertung per Hand, auf dem Server mit Request.Form[].
    >
    Wäre eine Notlösung, welche ich auch schon überlegt habe.

    > Oder halt mit einem Repeater sowie arbeiten, und dort die
    > "Zeile" festzuhalen die man dann per JavaScript ausliest oder setzt.
    > Schwierig ne Lösung nun vorzuschlagen ohne zu wissen was Du genau willst.
    Ich möchte einfach einen JavaScript-Event mit Funktion und in der
    Funktion wissen, wie ich auf ein anderes Element(hier CheckBox) in der
    gleichen Zeile zugreiffen kann.

    Gruss Christoph
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 21:40 Antwort zu

    RE: JavaScript bei CheckBox in GridView

    Zwei asp:Checkbox'es in je ein TemplateField,
    im HTML-Part folgendes Javascript platzieren:


    function Toggle(secondbox) {
    secondbox.checked = true;
    }


    Im RowDataBound folgenden Code:

    if (e.Row.RowType == DataControlRowType.DataRow) {
    CheckBox CheckBox1 = (CheckBox)e.Row.FindControl("CheckBox1");
    CheckBox CheckBox2 = (CheckBox)e.Row.FindControl("CheckBox2");
    if (CheckBox1 != null && CheckBox2 != null) {
    CheckBox1.Attributes.Add("onclick", "Toggle(" + CheckBox2.ClientID + ")");

    }
    }

    funktioniert hier problemlos.
    Toggle mußt Du halt noch so umbauen, dass wenn 1 wieder deaktiviert
    wird, 2 nachgezogen wird.

    Gruss

    Alex
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 21:48 Antwort zu

    RE: JavaScript bei CheckBox in GridView

    also praktisch so:

    function Toggle(firstbox, secondbox) {
    secondbox.checked = firstbox.checked;
    }


    Der angepasste RowDataBound-Code

    CheckBox1.Attributes.Add("onclick", "Toggle(" + CheckBox1.ClientID + "," + CheckBox2.ClientID + ")");

    Gruss

    Alex
    • IP-Adresse ist Nicht registriert
  • 07-13-2006 22:11 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Hallo Alex

    Super Lösung. Danke

    Gruss Christoph

    Alexander Zeitler schrieb:
    > also praktisch so:
    >
    > function Toggle(firstbox, secondbox) {
    > secondbox.checked = firstbox.checked;
    > }
    >
    >
    > Der angepasste RowDataBound-Code
    >
    > CheckBox1.Attributes.Add("onclick", "Toggle(" + CheckBox1.ClientID + "," + CheckBox2.ClientID + ")");
    >
    > Gruss
    >
    > Alex
    >
    >
    >
    >
    >
    • IP-Adresse ist Nicht registriert
  • 07-14-2006 9:09 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Alexander Zeitler schrieb:


    > function Toggle(firstbox, secondbox) {
    > secondbox.checked = firstbox.checked;
    > }

    Sicher?

    function Toogle(firstbox, secondbox)
    {
    var fb = document.getElementById(firstbox);
    var sb = document.getElementById(secondbox);
    sb.checked = fb.checked;
    }

    oder sofern man einen JS-Lib verwendet die das "übliche" $() anbietet.

    function Toogle(firstbox, secondbox)
    {
    $(secondbox).checked = $(firstbox).checked;
    }

    > CheckBox1.Attributes.Add("onclick", "Toggle(" + CheckBox1.ClientID + "," + CheckBox2.ClientID + ")");

    Ich weiss schon warum ich alles im CodeBehind mache. Dann bleiben wir
    einige Probleme erspart. Das ganze gekröse mag ich einfach nicht.


    --
    Freundliche Grüße

    Albert Weinert

    http://der-albert.com
    http://www.afterlaunch.de Die Community Konferenz nach dem Launch von Visual Studio 2008
    • IP-Adresse ist Nicht registriert
  • 07-14-2006 9:17 Antwort zu

    RE: JavaScript bei CheckBox in GridView

    >
    > Sicher?

    naja, immerhin hat es in FF, IE + Opera funktioniert.
    Sauberer ist es sicher über getElementById.

    >
    > Ich weiss schon warum ich alles im CodeBehind mache. Dann bleiben wir
    > einige Probleme erspart. Das ganze gekröse mag ich
    > einfach nicht.
    >

    kann ich mich nur anschließen, deshalb ja auch dieser Ansatz ;-)

    Gruss

    Alex
    • IP-Adresse ist Nicht registriert
  • 07-14-2006 9:28 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Alexander Zeitler schrieb:
    >> Sicher?
    >
    > naja, immerhin hat es in FF, IE + Opera funktioniert.
    > Sauberer ist es sicher über getElementById.

    Jein, sicher ist es sauberer ... aber auch nur wenn man wirklich eine
    ClientID übergeben bekommt, aber da habe ich nicht genau hingesehen. Ich
    habe nur ClientID gesehen und gedacht das Du diese auch übergibst,
    machst Du ja aber nicht. Da Du es ja nicht in '' gesetzt hast und das
    das Toogle() wohl im Kontext von aufgerufen wird und JS dies
    dann als Eigenschaft der interpretiert, deshalb klappt dies.


    --
    Freundliche Grüße

    Albert Weinert

    http://der-albert.com
    http://www.afterlaunch.de Die Community Konferenz nach dem Launch von Visual Studio 2008
    • IP-Adresse ist Nicht registriert
  • 07-14-2006 9:47 Antwort zu

    Re: JavaScript bei CheckBox in GridView

    Hallo

    Hab das so umgestellt.

    Gruss Christoph
    • IP-Adresse ist Nicht registriert
Seite 1 von 1 (14 Treffer)