Проблема с библиотекой YUI и выпадающим списком автоответчика asp.net - PullRequest
0 голосов
/ 18 июня 2009

Мы используем библиотеку YUI в нашем проекте asp.net. У меня есть выпадающий список 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 голосов
/ 22 июня 2009

Наконец я нашел ответ. На самом деле YUI связывает свое собственное событие отправки с формой для выпадающего списка автоответчика. Поэтому нам нужно предотвратить эти события 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.

...