2012-03-30 1 views
0

Ich entwickle eine Aspx-Seite. Auf der Seite habe ich drei Dropdown-Listen und eine Schaltfläche. Alle diese Dropdown-Listen werden basierend auf dem hinter Code geschriebenen Code (CS-Datei) dynamisch gefüllt. Zu diesem Zweck muss ich zwei Event-Handler-Methoden für die ersten beiden Dropdown-Listen mit AutoPostBack = "true" verwenden. Nach dem Klicken auf die Schaltfläche in der Javascript-Datei sollte firEvent() ein Objekt enthalten, das den ausgewählten Wert enthält. Aber die Seite feuert das Ereignis nicht ab. Bitte helfen Sie mir bei der Lösung dieses Problems. Danke im Voraus. PFB meinen Code für aspx Seite:Gibt es irgendwelche Auswirkungen auf FireEvent(), wenn ich AutoPostBack = "true" in der asp-Dropdown-Liste verwende?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PopupReference.aspx.cs" 
Inherits="ButtonReference.Popups.PopupReference" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head id="Head1" runat="server"> 
<title>Reference Button Popup</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 

    <div> 
     <h1> 
      Reference Button Popup</h1> 
     <p> 
      <asp:DropDownList ID="lookupcompDropdown" runat="server" AutoPostBack="true" onselectedindexchanged="lookupcomp_SelectedIndexChanged" > 
      </asp:DropDownList> 
      <asp:DropDownList ID="embeddedschemaDropdown" runat="server" AutoPostBack="true" onselectedindexchanged="embeddedschema_SelectedIndexChanged"> 
      </asp:DropDownList> 
      <asp:DropDownList ID="lookupvaluesDropdown" runat="server" AutoPostBack="false"> 
      </asp:DropDownList> 
      <asp:Button ID="Submit" runat="server" Text="Submit" /> 

     </p> 
    </div> 
    </form> 
</body> 
</html> 

Javascript-Datei:

Type.registerNamespace("RTFExtensions.Popups"); 

RTFExtensions.Popups.PopupReference = function (element) { 
    Type.enableInterface(this, "RTFExtensions.Popups.PopupReference"); 
    this.addInterface("Tridion.Cme.View"); 
}; 

    RTFExtensions.Popups.PopupReference.prototype.initialize = function() { 
     alert("initialized");  
     $log.message("Initializing Button Reference popup..."); 
     this.callBase("Tridion.Cme.View", "initialize"); 

     var p = this.properties; 
     var c = p.controls; 

     p.HtmlValue = { value: null }; 
     ($("#DropDownList1"), "System.Web.UI.WebControls.DropDownList"); 
      c.SubmitButon = $("#Submit"); 

    //asp dropdown 
     c.DropDown = $("#lookupvaluesDropdown"); 
     $evt.addEventHandler(c.SubmitButon, "click", this.getDelegate(this._execute)); 
     $evt.addEventHandler(c.InsertButton, "click", this.getDelegate(this._execute)); 

    }; 

    RTFExtensions.Popups.PopupReference.prototype._execute = function() { 
     alert("executing"); 
     //alert($("#lookupvaluesDropdown").value); 
     this.properties.HtmlValue.value = $("#lookupvaluesDropdown").value; 
     alert(this.properties.HtmlValue.value+"in execute"); 
     alert(this.fireEvent("submit1", this.properties.HtmlValue)); 
     //$("#Submit").fireEvent("submit1", this.properties.HtmlValue); 
     window.close(); 
    }; 

    $display.registerView(RTFExtensions.Popups.PopupReference); 
+0

was bedeutet, dass Sie dynamisch Controls erstellen? –

+0

Vielen Dank für Ihre Antwort. Nein, ich erstelle keine Kontrollen. –

Antwort

0

Bitte klären Sie Ihre Frage. So weit mein Verständnis

Ist Ihr Button eine Asp-Schaltfläche, wenn ja, versuchen Sie, OnClientClick-Ereignis verwenden, um die JavaScript-Funktion aufzurufen. Greifen Sie auf diese Dropdown-Liste innerhalb Ihrer Javascript-Funktion zu, um sie zu manipulieren.

Ihre Veranstaltung wird ausgelöst (versuchen Sie, Ihr JavaScript zu debuggen), aber beim Postback wird eine brandneue Seite gerendert. Verwenden Sie eine normale HTML-Schaltfläche anstelle einer ASP-Schaltfläche.

+0

Ich benutze Asp-Taste selbst. Der Server füllt alle diese Dropdown-Listen. Ich bin nicht in der Lage FireEvent mit FireEvent() -Methode. Kann ich den Code teilen? –

+0

Ja bitte teilen Sie Ihren Code – singsuyash

+0

Ich benutze jquery in Javascript-Datei. –