簡體   English   中英

在下拉列表selectedIndexchanged事件上彈出JQuery模式

[英]Popup JQuery modal on dropdownlist selectedindexchanged event

我要求在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);
}

檢查頁面生成的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM