いつもお世話になっております。
intramartというフレームワークでの開発で、マスタファイル検索のダイヤログを呼び出して、検索した結果を受け取る、というアプリを作ろうとしています。
ajaxを使ってダイヤログを呼び出すところまではできたのですが、その値を返す時の値のセットのしかたが判りません。
フレームワーク独自のAPIを使っているものの、考え方は普通のajaxでパラメタを渡してダイヤログを呼び出すという点は、通常のjQueryを使って行うのと同じだとは思うのですが、ドキュメントを見ても普通にajaxで行えばと言わんばかりになのか、そこまでは言及されていません。
また、表示したダイヤログも親画面からはボタンがコントロールできるので閉じることは出来ているのですが、閉じるというイベントしか公開されていないため、子画面で閉じようとしているのですが、うまくいきません。
ネットで検索するものの、ここ数日行き詰っており、識者の方のアドバイスをいただければと思い、投稿した次第です。
何らかヒントでも頂ければ幸いです。よろしくお願いします。
html
1<!-- 呼び出し元 --> 2<script type="text/javascript"> 3 $(function() { 4 $('#searchIcon').on('click', function() { 5 //ボタンを表示する例 6 $('<div id="detail_dialog"></div>').appendTo(document.body).imuiPageDialog({ 7 title: '得意先検索', 8 url: 'app/tk_select', 9 parameter: { 10 'imui-theme-builder-module': 'notheme' 11 }, 12 position: [300, 200], 13 modal: true, 14 height: 450, 15 width: 465, 16 buttons: [ 17 { 18 'id': 'okbutton', 19 'text': 'OK', 20 }, 21 { 22 'text': 'キャンセル', 23 'click': function() {$(this).imuiPageDialog('close'); } 24 } 25 ], 26 close : function (event){ 27 $('#detail_dialog').remove(); 28 <!-- ここまでは正常に動作 --> 29 if (pageDialog.trigger) { 30 // ダイアログで操作記録が取られた場合のみ実行 31 $('#tkcd').val(pageDialog.data.ctktkcd); 32 $('#tknm').val(pageDialog.data.ctrtrnm); 33 // 操作記録をクリア 34 pageDialog.trigger = ''; 35 } 36 37 }, 38 //エラーが発生したときに、ボタン表示領域を非表示にする 39 buttonsStateOnError: 'hide' 40 }); 41 42 }); 43 }); 44</script>
html
1<!-- 呼び出し先 --> 2<script type="text/javascript"> 3function Link_url(a, b) { 4 var sel_list = $('#ctktbl').getGridParam('data'); 5 alert(sel_list[a - 1]["ctrtrnm"]); // この値までは正常に取得 6 // ???? この先がよく判りません ???? 7 var res = new Object(); 8 res.tkcd = sel_list[a - 1]["ctktkcd"]; // 返したい値 9 res.tknm = sel_list[a - 1]["ctrtrnm"]; // 返したい値 10 // クライアントにデータを返却 11 var jsonString = ImJson.toJSONString(res); 12 var response = Web.getHTTPResponse(); 13 res.setContentType("application/json; charset=UTF-8"); 14 res.sendMessageBodyString(jsonString); 15 // ウィンドウをクローズ 16 window.close(); 17} 18</script> 19<imart type="imuiListTable" data=DBList id="ctktbl" multiSelect="false" width="440" height="450" > 20 <cols> 21 <col name="ctktkcd" caption="コード" width="100"> 22 <callFunction name="Link_url" /> 23 </col> 24 <col name="ctrtrnm" caption="得意先名" width="340" /> 25 </cols> 26</imart> 27
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/23 07:28
2020/09/25 03:37
2020/09/25 03:50