YUI库和asp.net autopostback下拉列表的问题

时间:2009-06-18 12:40:09

标签: asp.net drop-down-menu yui autopostback

我们在asp.net项目中使用YUI库。我有一个asp.net autopostback下拉列表,它被转换为YUI下拉列表,如下所示。现在,当用户从下拉列表中选择一些值时,页面会回发并且会触发SelectedGroupChanged事件,但在此之前不会出现确认对话框。我在这里做错了什么?

代码:

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

}

1 个答案:

答案 0 :(得分: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);

希望这可以帮助任何使用autopostback下拉列表的用户在asp.net中确认消息。