2009-06-18 10 views
0

Nous utilisons la bibliothèque YUI dans notre projet asp.net. J'ai une liste déroulante asp.net autopostback qui est convertie en liste déroulante YUI comme le code ci-dessous. Maintenant, lorsque l'utilisateur sélectionne une valeur dans la liste déroulante, la page est postée et l'événement SelectedGroupChanged se déclenche, mais avant cela, la boîte de dialogue de confirmation n'apparaît pas. Ce que je pourrais faire mal ici?Problème avec la bibliothèque YUI et la liste déroulante d'autopostback d'asp.net

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; 

} 

Répondre

0

Enfin, je trouve la réponse. En fait YUI est en train de câbler son propre événement submit au formulaire pour la liste déroulante autopostback. Nous devons donc empêcher ces événements YUI si l'utilisateur choisit d'annuler son action. Donc, pour ce faire, voici le code que je suis arrivé de la page d'exemple de YUI:

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); 

Espérons que cela aidera tout le monde qui utilise DropDownList autopostback avec un côté client un message de confirmation dans asp.net.