2009-06-18 5 views
0

Wir verwenden YUI-Bibliothek in unserem Asp.net-Projekt. Ich habe eine asp.net Autopostback-Dropdown-Liste, die in YUI Dropdown-Liste als der unten angezeigte Code konvertiert wird. Wenn Benutzer nun einen Wert aus der Dropdown-Liste auswählen, wird die Seite zurückgesendet und das SelectedGroupChanged-Ereignis wird ausgelöst, aber zuvor wird das Bestätigungsdialogfeld nicht angezeigt. Was könnte ich hier falsch machen?Problem mit YUI-Bibliothek und asp.net Autopostback Dropdown-Liste

Code:

<asp:Button id="Groups" Enabled="false" runat="server" /> 
<asp:DropDownList ID="groupsDropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="SelectedGroupChanged" /> 

<script language="javascript" type="text/javascript"> 

var YUIGroupsDrpDown; 

<%if (Groups.Visible) 

{ %> 
    YUIGroupsDrpDown = new YAHOO.widget.Button("<%=Groups.ClientID %>",{type:"menu", menu: "<%=groupsDropDownList.ClientID %>"}); 
    YUIGroupsDrpDown.set("label", "<%=groupsDropDownList.SelectedItem.Text%>"); 
    YUIGroupsDrpDown.getMenu().subscribe("click",onGroupsChange); 
    YUIGroupsDrpDown.on("click", {fn: TakeActions, obj: 'M'}); 
<%} %> 

function onGroupsChange() 
{ 

    YUIGroupsDrpDown.set("label", YUIGroupsDrpDown.getMenu().activeItem.srcElement.text); 

} 


function TakeActions(event, action) 

{ 
    var message = 'some message' 
     if (window.confirm(strMsg) != 1) 
      return false; 
     else 
      return true; 

} 

Antwort

0

Schließlich fand ich die Antwort. Tatsächlich verknüpft YUI sein eigenes Submit-Ereignis mit dem Formular für die Autopostback-Dropdown-Liste. Daher müssen wir dieses YUI-Ereignis verhindern, wenn der Benutzer seine Aktion absagt. Also, dies zu tun, hier ist der Code, den ich aus dem YUI Beispiel Seite bekam:

var onExampleSubmit = function(p_oEvent) { 

      var bSubmit = 
        window.confirm("Are you sure you want to submit?") 

      if(!bSubmit) { 
       YAHOO.util.Event.preventDefault(p_oEvent); 
      } 

     }; 

     YAHOO.util.Event.on(pageForm, "submit", onExampleSubmit); 

Hope this jemanden helfen wird, die mit einer Autopostback Dropdownlist-Client-Seite Bestätigungsnachricht in asp.net verwendet.

Verwandte Themen