繁体   English   中英

从asp.net dropdownlist更改中调用jQuery模式弹出

[英]Call jquery modal popup from asp.net dropdownlist change

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


   **Server Side Code --**
    protected void ddlTransactionList_SelectedIndexChanged(object sender, 
          EventArgs e)
    {
        //Your Code
        if (OnDataChanged != null)
            OnDataChanged(sender, e);
    }

谢谢

我认为ASP.NET创建的javascript与您要添加到下拉列表中的onchange事件之间存在冲突(onchange =“ return ....”),因此它忽略了回发的调用。

我将从在前端尝试类似的东西开始:

// remove the autopostback & onchange from the ddl definition
<asp:DropDownList ID="ddlTransactionList" runat="server"></asp: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');
            return true;
        },
        "No": function () {
            $(this).dialog('close');
        }
    }
});

};

$(document).ready(function(){
    $("<% ddlTransactionList.CLientID %>").change(function(){
        if(PopupDialog('Remittance Confirmation','Are you sure you want to update the status?.')){
            __doPostBack('ddlTransactionList')
        }
    });
});

在后面的代码中:

public void Page_Load(object sender, EventArgs e)
{
    string parameter = Request["__EVENTARGUMENT"]; // parameter
    // Request["__EVENTTARGET"]; // ddlTransactionList
    // make your call to ddlTransactionList_SelectedIndexChanged() here
}

让我们知道是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM