- PR -

ポップアップウインドウから得意先検索

1
投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-04-25 15:32
ポップアップウインドウから得意先検索

DEMO
をクリックすると Web Form が表示されますので Search ボタンをクリックして
得意先のポップアップウィンドウを表示します。

DropdownList から得意先を選択したら OK ボタンをクリックします。ここで選択した
得意先IDがメインフォームに転送されて自動的にデータが更新されます。

メインフォームには、DropdownList から選択した得意先の得意先名、住所と受注情報が表示されます。受注情報から Details をクリックすると、この受注情報の明細がポップアップウインドウに表示されます。

ポップアップウインドウを表示するテクニックは、
PopupCalendar.aspx
と同様、新規ウインドウを開く JavaScript を生成して
Response.Write でブラウザに送信します。

Happy Programming!
Akio Kasai
ゴマオ
会議室デビュー日: 2002/05/19
投稿数: 6
投稿日時: 2002-05-19 00:26
ASP.NETでのポップアップウィンドウについて調べていたので
大変参考になりました。ただ、サンプルではポップアップウィンドウ
から呼び出し元のウィンドウへのデータの戻しにの部分には触れてい
なかったので、その辺について教えてくださ。

ポップアップしたCustomerSearch.aspxから呼び出しもとの
Customer.aspxへの選択データの受け渡し(戻し)はどのよ
うに行うのでしょうか?(ぜひサンプルコードを掲載してください。)

よろしくお願いいたします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-05-19 06:25
まず、DEMOのソースをご覧ください。
行97-103にHidden属性のButtonコントロールが埋め込まれています。

コード:
 97: <asp:button 
 98:   id="btnRefresh" 
 99:   Text="Hidden"
100:   Visible="False"
101:   OnClick="btnRefresh_Click"        
102:   runat="server">        
103: </asp:button>



得意先のポップアップウィンドウから得意先を選択してOKボタンをクリック
したときにButtonコントロールのOnClickイベントを実行させてDataGridを
リフレッシュしています。

このDEMOでは、Customer IDのTextBox(txtCustomerID)の値が変更されたときに、
ButtonのOnClickイベントが実行されるようにしています。

Customer IDの値が変更されたときに、PostBackさせるには、
Client-sideのJavaScript(JScript)を組み込む必要があります。

txtCustomerId.Attributes.Add("OnPropertyChange", GetPostBackEventReference(btnRefresh))

このステートメント実行すると、HTMLの<input>タグに
OnPropertyChange="__doPostBack('btnRefresh','')"
が追加されます。

コード:
<script language="javascript">
function __doPostBack(eventTarget, eventArgument) {
  var theform = document.Form1;
  theform.__EVENTTARGET.value = eventTarget;
  theform.__EVENTARGUMENT.value = eventArgument;
  theform.submit();
}

<input name="txtCustomerID" type="text" value="1" readonly="readonly" 
id="txtCustomerID" OnPropertyChange="__doPostBack('btnRefresh','')" 
style="border-style:Inset;background:pink;color:black" />



これで、txtCustomerIDの値が変更されたときに、ページがPostBackされて
btnRefreshのOnClickイベントが実行されます。


GetPostBackEventReference
メソッドを使用すると、TextBoxコントロールのように通常PostBackしないコントロールもPostBackさせることができます。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-05-20 08:44
引用:

ポップアップしたCustomerSearch.aspxから呼び出しもとの
Customer.aspxへの選択データの受け渡し(戻し)はどのよ
うに行うのでしょうか?



ポップアップカレンダーのスレッド を参照してください。

[ メッセージ編集済み 編集者: Dr ADO.NET 編集日時 2002-05-21 04:51 ]
ゴマオ
会議室デビュー日: 2002/05/19
投稿数: 6
投稿日時: 2002-06-07 21:53
前回は親切にご回答いただき、ありがとうございます。

また質問なのですが、よろしくお願いいたします。
『ポップアップウインドウから得意先検索 』
のデモですが、Netscapeでは動作しません。
Response.Writeでポップアップウィンドウに返し
ているスクリプトをNetscapeが受け付けないため
だと思うのですが、回避方法はないでしょうか?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-06-08 16:37
このサンプルは、Client-SideのJavaScript(JScript)を使用しています。

ご存知のようにIEとNNでは、JavaScriptの互換性はありませんので、
IE,NN双方で動作させるには、ブラウザの種類を調べてブラウザ別に
JavaScriptを記述する必要があります。

時間があるときにIEとNNの違いを調べてみます。

IE/NN双方に対応させるようなアプリケーションを開発するときは、
Client-SideのJavaScriptは、避けた方がよさそうです。

みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-07-26 12:46
便乗していいものかと思いながら、質問いたします。

「ポップアップウインドウから得意先検索」 という件名なので
ご存知ではないかと質問させていただきます。

ポップアップウィンドウで表示したDataGridについての質問です。
ポップアップウィンドウで表示したDataGridの選択ボタンをクリックすると
メインフォームのTextBoxに表示し、ポップアップウィンドウを閉じたいのですが、
選択ボタンをクリックしてもなんの反応も無い状態です。

単純にポップアップウィンドウのTextBoxの内容をButtonをクリックして
メインフォームのTextBoxに表示することはできますし、
メインフォームのDataGridの選択ボタンの処理もできます。

単純にこれらを組み合わせれば良いかと思ったのですが。。。。
DataGridでは特別に何かしなければならないのでしょうか?

投稿された日付はかなり前のスレッドに、このような質問をするのは
どうかと思うのですが、ご存知であれば宜しくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)