Откройте диалоговое окно jquery из другого диалогового окна и передайте значения через ajax

#asp.net #jquery

#asp.net #jquery

Вопрос:

У меня есть диалоговое окно jquery, которое фиксирует вводимые пользователем данные (откройте страницу PLVoceInput.aspx в диалоговом окне jquery), которые впоследствии используются (путем публикации их на странице PLVoceOutput.aspx) для вычисления некоторых значений на стороне сервера и отображения их в другом диалоговом окне.


 $("#divPLVoiceInput").dialog(
             {
                 bgiframe: true,
                 autoOpen: false,
                 draggable: true,
                 modal: true,
                 position: 'center',
                 width: 400,
                 height: 200,
                 title: 'Input Pamp;L',
                 open: function(event, ui) {
                     $(this).load("PLVoceInput.aspx?customertype=ex");
                 },
                 buttons: 
                    [
                        {
                            text: "Ok",
                            click: function() {                                   
                                var v1=$("#tbSubsidizeVal").val();
                                var v2 = $("#tbSubsidizeSims").val();
                                var v3 = $("#tbSimCost").val();
                                var v4 = $("#tbOtherCostsSim").val();
                                var v5 = $("#tbLPs").val();
                                var v6 = $("#tbSalesComm").val();
                                var v7 = $("#tbContractLength").val();
                                var v8 = $("#tbPreTaxDiscountRate").val();
                                $("#divPLVoiceOutput").css('display', 'block');
                                $.ajax({
                                    url: "PLVoceOutput.aspx",
                                    //type: "POST",
                                    data: { 
                                        valSubsidizeVal: v1,
                                        valSubsidizeSims: v2,
                                        valSimCosts: v3,
                                        valOtherCosts: v4,
                                        valLP: v5,
                                        valSalesComm: v6,
                                        valContractLength: v7,
                                        valPreTaxDiscountRate: v8
                                        }
                                    });
                                $(this).dialog("close");
                                $("#divPLVoiceOutput").dialog("open");
                            }
                        },
                         {
                             text: "Cancel",
                             click: function() {
                                 $(this).dialog("close");
                             }
                         }
                     ]
             });
        $("#divPLVoiceOutput").dialog(
             {
                 bgiframe: true,
                 autoOpen: false,
                 draggable: true,
                 modal: true,
                 position: 'center',
                 width: 600,
                 height: 500,
                 title: 'Detalii Pamp;L',
                 open: function(event, ui) {
                     $(this).load("PLVoceOutput.aspx");
                 },
                 buttons: [
                    {
                        text: "Ok",
                        click: function() { $(this).dialog("close"); }
                    }
                        ]
             });
  

Проблема в том, что второе диалоговое окно дважды открывает страницу aspx, первое с переданными параметрами, а второе без каких-либо параметров, поэтому отображаемые данные неверны. Что я должен изменить в своем коде? Спасибо

Ответ №1:

Я нашел решение:

 $("#divPLVoiceInput").dialog(
             {
                 bgiframe: true,
                 autoOpen: false,
                 draggable: true,
                 modal: true,
                 position: 'center',
                 width: 425,
                 height: 250,
                 title: 'Input Pamp;L',
                 open: function(event, ui) {
                     $(this).load("PLVoceInput.aspx?customertype=ex");
                 },
                 buttons:
                    [
                        {
                            text: "Ok",
                            click: function() {
                                $("#divPLVoiceOutput").css('display', 'block');
                                var inputData = 'valSubsidizeVal='   $("#tbSubsidizeVal").val()  
                                    'amp;valSubsidizeSims='   $("#tbSubsidizeSims").val()  
                                    'amp;valSimCosts='   $("#tbSimCost").val()  
                                    'amp;valOtherCosts='   $("#tbOtherCostsSim").val()  
                                    'amp;valLP='   $("#tbLPs").val()  
                                    'amp;valSalesComm='   $("#tbSalesComm").val()  
                                    'amp;valContractLength='   $("#tbContractLength").val()  
                                    'amp;valPreTaxDiscountRate='   $("#tbPreTaxDiscountRate").val();
                                $("#divPLVoiceOutput").dialog({
                                    bgiframe: true,
                                    autoOpen: false,
                                    draggable: true,
                                    modal: true,
                                    position: 'center',
                                    width: 600,
                                    height: 500,
                                    title: 'Detalii Pamp;L',
                                    open: function(event, ui) {
                                        $(this).load("PLVoceOutput.aspx?"   inputData);
                                    },
                                    buttons: [
                                        {
                                            text: "Ok",
                                            click: function() { $(this).dialog("close"); }
                                        }
                                            ]
                                });
                                $("#divPLVoiceOutput").dialog("open");
                                $("#divPLVoiceInput").dialog("close");
                            }
                        },
                         {
                             text: "Cancel",
                             click: function() {
                                 $(this).dialog("close");
                             }
                         }
                     ]
             });