2009-06-18 59 views
0

我們在我們的asp.net項目中使用YUI庫。我有一個asp.net autopostback下拉列表,它將轉換爲YUI dropdownlist,如下所示的代碼。現在,當用戶從下拉列表中選擇某個值時,頁面會回發並且SelectedGroupChanged事件會觸發,但在此之前確認對話框不會出現。我在這裏可能做錯了什麼?YUI庫和asp.net autopostback下拉列表問題

代碼:

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

} 

回答

0

我終於找到了答案。實際上,YUI將自己的提交事件連接到autopostback下拉列表的表單。因此,如果用戶選擇取消他的操作,我們需要阻止這些YUI事件。因此,要做到這一點,下面是我從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); 

希望這將有助於誰在使用自動回下拉列表在asp.net客戶端的確認信息任何人。