Всплывающее JQuery модальное в выпадающем списке выбрано

0

У меня есть требование выполнить некоторое логическое выполнение после изменения значения dropdownlist. Перед выполнением логики мне нужно принять подтверждение пользователя, а затем вызвать метод стороны на стороне сервера, чтобы завершить процесс. Не уверен. Как вызвать метод на стороне сервера, основанный на модальном всплывающем подтверждении от пользователя. Поэтому, если пользователь подтверждает с помощью кнопки "Да" на модальном всплывающем сервере, код должен быть вызван иначе, ничего не делать.

Вот код, который у меня есть. На стороне сервера не вызывается модальное всплывающее подтверждение.

function PopupDialog(title, text) {
    var div = $('<div>').html('<br>'+text).dialog({
    title: title,
    modal: true,
    height: 190,
    width: 320,
    buttons: {
        "Yes": function () {
            $(this).dialog('close');

        },
        "No": function () {
            $(this).dialog('close');

        }
     }
     });

     return true;
  };



 <asp:GridView runat="server" ID="grdTransactions" SkinID="gridviewskin"  
    AllowSorting="true" AllowPaging="true" PageSize="30" Width="100%" 
    OnRowDataBound="grdTransactions_RowDataBound"
    OnDataBound="grdTransactions_DataBound"  
    OnSelectedIndexChanged="grdTransactions_SelectedIndexChanged">

   .............

<asp:TemplateField Visible="true" HeaderText="Status" >
    <ItemTemplate>
        <asp:Label runat="server" ID="lblStatus"  Visible="False" Text='<%# ShowStatus( Container.DataItem ) %>' />
        <asp:DropDownList ID="ddlTransactionList" AutoPostBack="True"  OnSelectedIndexChanged="ddlTransactionList_SelectedIndexChanged" onchange="return PopupDialog('Remittance Confirmation','Are you sure you want to update the status?.');"  runat="server"></asp:DropDownList>
        <br/>
    </ItemTemplate>
</asp:TemplateField>

Ниже приведен код сервера:

protected void ddlTransactionList_SelectedIndexChanged(object sender, 
      EventArgs e)
{
    //Your Code
    if (OnDataChanged != null)
        OnDataChanged(sender, e);
}
  • 0
    Можете ли вы опубликовать полный код на своей странице asp.net? Простым решением было бы убедиться, что кнопка [Да] является объектом ASP.NET со значением runat = "Server" ... опубликуйте свой код asp.net, и я могу вам помочь.

1 ответ

0

Проверьте сгенерированный HTML-код своей страницы и посмотрите на раскрывающийся список. Он должен выглядеть так:

<select name="gridView$ctl02$ddlTransactionList" onchange="return PopupDialog(&#39;Remittance Confirmation&#39;,&#39;Are you sure you want to update the status?.&#39;);setTimeout(&#39;__doPostBack(\&#39;gridView$ctl02$ddlTransactionList\&#39;,\&#39;\&#39;)&#39;, 0)" id="gridView_ddlTransactionList_0">

Проблема заключается в том, что вы "возвращение" результат вашей PopupDialog так что __doPostback функция (AutoPostBack) не имеет шансов получить называется. Мой совет: возвращайтесь только в том случае, если пользователь отклонил это изменение. Если пользователь согласен, ничего не вернет.

Редактировать (забыл опубликовать код решения)

<asp:DropDownList ID="ddlTransactionList" AutoPostBack="True"  OnSelectedIndexChanged="ddlTransactionList_SelectedIndexChanged" onchange="if(! PopupDialog('Remittance Confirmation','Are you sure you want to update the status?.')){return false;}"  runat="server"></asp:DropDownList>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню