asp.net
  • javascript
  • parameters
  • 2009-04-22 1 views 1 likes 
    1

    Diese HyperLink Syntax keine Parameter zu einem kleinen PopUp Fenster passieren funktioniert:PopUp erstellen mit <asp: HyperLink> das heißt Parameter übergeben

    <asp:HyperLink ID="HyperLink2" runat="server" Text="Manage Related Items" 
        NavigateUrl='<%# "editRelatedItems.aspx?" + "ProductSID=" + Eval("ProductSID") + "&CollectionTypeID=" + Eval("CollectionTypeID")+ "&ProductTypeID=" + Eval("ProductTypeID") %>' 
        onclick="window.open('editRelatedItems.aspx?','name','height=550, width=790,toolbar=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no'); return false;) 
        target="_blank" /> 
    

    Sieht aus wie der <asp:HyperLink> Tag die "onclick" nicht statt. Irgendwelche Ideen, wie man einen Pop-up zu schießen bekommt, der diese Parameter bekommen kann? Ich benutze C#, also gibt es vielleicht eine Möglichkeit, die NavigateURL Zeichenkette in den Code hinter zu bauen?

    Vielen Dank für Ihre Einsichten. Seitencode

    Antwort

    1
    <asp:HyperLink 
        ID="HyperLink2" 
        runat="server" 
        Text="Manage Related Items" 
        NavigateUrl="#" 
        onClick='<%# "window.open('editRelatedItems.aspx" + 
            "?ProductSID=" + Eval("ProductSID") + 
            "&CollectionTypeID=" + Eval("CollectionTypeID")+ 
            "&ProductTypeID=" + Eval("ProductTypeID") + 
            ",'name','height=550, width=790,toolbar=no, 
            directories=no,status=no, 
            menubar=no,scrollbars=yes,resizable=no'); 
            return false;%>' 
        Target="_blank" /> 
    

    Das sollte funktionieren, aber ich würde wirklich eine JavaScript-Methode erstellen aufzurufen, die das Fenster öffnen würde.

    <script type="text/javascript"> 
        function openRelatedItems(productSID, collectionTypeId, productTypeId) { 
    
         window.open('editRelatedItems.aspx" + 
            "?ProductSID=" + productSID + 
            "&CollectionTypeID=" + collectionTypeID + 
            "&ProductTypeID=" + productTypeID + 
            ",'name','height=550, width=790,toolbar=no, 
            directories=no,status=no, 
            menubar=no,scrollbars=yes,resizable=no'); 
    
        } 
    </script> 
    
    +0

    Danke Bob - und an alle anderen, die geantwortet haben. Dieser Code funktioniert, aber wie andere bereits erwähnt haben, asp: HyperLink-Steuerung mit Javascript hat sich als weniger als eine elegante Lösung erwiesen. Ich bin der Code von diesem Vorschlag für jetzt, weil die Anforderungen einfach sind. Grüße, Doug – Doug

    3

    Aus dem Server können Sie

    HyperLink2.Attributes.Add("OnClick", "yourstuffhere"); 
    

    tun, dass Sie die OnClick Elemente angeben können.

    Sie könnten auch die NavigateUrl so etwas wie "javascript: window.open ...", wenn Sie wollten, wieder aus dem Code hinter getan werden kann.

    auch

    Da ein Hyperlink nur ein Standard-Lauf von der Mühle Anker-Tag ist, wenn man hinter all dieser Verarbeitung im Code tun, könnte es nur einfacher, die ganze Verbindung selbst zu bauen um etwas Ärger zu sparen.

    +0

    Dank Mitchel welformed ist, im OnClick muß ich mein C# angeben Eval abgeleitet ("ProductSID") parameter in JavaScript-Art - sonst werden diese Parameter nicht an die URL-Zeichenkette & Zielseite übergeben. Irgendwelche Syntax-Ideen, wie man meine Eval ("ProductSID") - Typ-Statements in JavaScript konvertieren kann das ist sogar möglich? – Doug

    0

    Die NavigateUrl überschreibt das onclick-Ereignis eines 'a'-Tags.

    Sie möchten das Zielattribut gesetzt und den Onclick

    http://www.w3schools.com/tags/tag_a.asp

    1

    Sie benötigen die serverseitige Hyperlink Kontrolle fallen? Wenn nicht, würde ich empfehlen, nur ein Standard-HTML-Anchor-Tag zu verwenden, oder wenn Sie es dynamisch anzeigen möchten, um es im Back-End mit einem Literal-Tag zu generieren und das Markup dazu zu schreiben (einschließlich onclick). Die Frage, die Sie sich stellen müssen, lautet: "Fühlst du dich glücklich?" und "Benötige ich eine Serverkontrolle?"

    Wenn nicht vertraut, recherchieren Sie etwas über das ItemDataBound-Ereignis.

    Key-Code zu setzen in Ihre Datalist der ItemDataBound Veranstaltung:

    Dim lit as Literal = CType(e.Item.FindControl("Literal1"), Literal) 
    
    lit.Text = "<a onclick='YOURJAVASCRIPT' href='#'>YOUR TEXT</a>" 
    

    Dies ist keineswegs den gesamten Code, den Sie in Ihrem Event setzen sollten, wie ich sagte, Forschung, was die Veranstaltung bietet und gehen von dort.

    +0

    Dan, tut mir leid, ich habe diese Tatsache vorher nicht erwähnt: Der HyperLink befindet sich in einem einer DataList - also dem Hyperlink wird für jedes Produkt verschiedene Produktattribute erfassen. Was die Verwendung eines Literals betrifft, bin ich bei Ihrem Vorschlag unscharf - ersetzen Sie einfach den HyperLink durch Literal und machen Sie den Literal1.text = "someThingHereComingFromCodeBehind"? – Doug

    0

    Verwenden Sie OnClientClick anstelle von .

    1

    Ihre Verwendung von onclick in Ihrem Code fehlt es schließt Zitat " und hat eine zusätzliche Klammer ). Das könnte dein Problem sein.

    onclick="window.open('editRelatedItems.aspx?','name','height=550, width=790,toolbar=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no'); return false;" 
    

    Ich habe festgestellt, dass die JavaScript-Popups mit ASP:HyperLink nicht schön spielen; Versuchen Sie, die Verbindung über einen normalen Anker-Tag zu erstellen:

    <a id="HyperLink2" 
        runat="server" 
        NavigateUrl='<%# "editRelatedItems.aspx?ProductSID=" + Eval("ProductSID") + "&CollectionTypeID=" + Eval("CollectionTypeID")+ "&ProductTypeID=" + Eval("ProductTypeID") %>' 
        onclick="window.open('editRelatedItems.aspx?','name','height=550, width=790,toolbar=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no'); return false;" 
        Target="_blank"> 
    Manage Related Items 
    </a> 
    
    0
    <asp:HyperLink 
        ID="HyperLink2" 
        runat="server" 
        Text="Manage Related Items" 
        NavigateUrl="#" 
        onClick='<%# "window.open('editRelatedItems.aspx" + 
            "?ProductSID=" + Eval("ProductSID") + 
            "&CollectionTypeID=" + Eval("CollectionTypeID")+ 
            "&ProductTypeID=" + Eval("ProductTypeID") + 
            ",'name','height=550, width=790,toolbar=no, 
            directories=no,status=no, 
            menubar=no,scrollbars=yes,resizable=no'); 
            return false;%>' 
        Target="_blank" /> 
    

    , wo man "nach dem Start-URL-Wert geschlossen. Dieser Fehlercode angezeigt wird, der Server-Tag nicht

    Verwandte Themen