- PR -

ASP.NET 親画面と子画面のデータの受渡しについて

投稿者投稿内容
ASP.NET初心者
常連さん
会議室デビュー日: 2005/01/07
投稿数: 30
投稿日時: 2005-02-15 15:28
お世話になっております。ASP.NET初心者でございます。

早速のご返信に感謝致します。

子画面で入力されたデータは、親画面に表示するだけです。
その後、サーバにPostする必要はありません。

調べてはいるのですが、ド素人ですのでどのようにコーディングすればよいのか検討もつかない状態になっています。
もう少しお付き合い願います。


burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-02-15 16:23
簡単な考え方だけですが

DataGridに表示する内容がtableだとすると
下記のようにTDタグにIDを設定します。
IDを設定する方法は他にもあるので、お好みで。

コード:

Me.DataGrid1.DataSource = table
Me.DataGrid1.DataBind()

For i As Integer = 0 To table.Rows.Count - 1

    For j As Integer = 0 To table.Columns.Count - 1

        Dim id As String = Me.DataGrid1.ClientID & "_Row" & i & "_Cell" & j
        Me.DataGrid1.Items(i).Cells(j).Attributes.Add("id", id)

    Next

Next




あとはクライアントスクリプトで


コード:

function SetString()
{
	var obj;
	obj = document.getElementById("DataGrid1_Row0_Cell0");
	obj.innerText = "XXXX";
}




でグリッドに設定できます。
これを応用すれば、子画面で入力された項目をDataGridに設定できるかと思います。

ASP.NET初心者
常連さん
会議室デビュー日: 2005/01/07
投稿数: 30
投稿日時: 2005-02-15 18:42
お世話になっております。ASP.NET初心者でございます。

burton999様 アドバイスありがとうございます。
サンプルを作成していただき大変参考になりました。

話はそれてしまいますが、Sessionを使う場合についてお聞きしたいことがあります。
1.親画面にてリンクボタンを押下する
  サーバ側:子画面を表示(Window.Open等)
2.子画面にてテキストボックスに入力し、終了ボタンを押下する
  サーバ側:入力データをSessionに格納
       子画面を閉じる
以上のような処理をした場合に、親画面にてSessionを参照するタイミング(イベント?)はいつになるのでしょう?
子画面が閉じられたタイミングを取得することができるのでしょうか?

大変申し訳ないのですが、ご教授お願い致します。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-02-15 19:53
window.showModalDialogで子画面を表示しているなら
子画面が閉じられて親画面のクライアントスクリプトに制御がうつったときが
Submitするタイミングです。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-02-15 23:51
引用:
話はそれてしまいますが、Sessionを使う場合についてお聞きしたいことがあります。
1.親画面にてリンクボタンを押下する
  サーバ側:子画面を表示(Window.Open等)
2.子画面にてテキストボックスに入力し、終了ボタンを押下する
  サーバ側:入力データをSessionに格納
       子画面を閉じる
以上のような処理をした場合に、親画面にてSessionを参照するタイミング(イベント?)はいつになるのでしょう?
子画面が閉じられたタイミングを取得することができるのでしょうか?

子画面のデータを親画面に表示する部分の処理がクライアントスクリプトのみで
完結されているのなら上記2のサーバ側の処理は実現できないのでは?上の書き方だと
子画面でもsubmitするようなイメージです。また、
引用:
子画面で入力されたデータは、親画面に表示するだけです。
その後、サーバにPostする必要はありません。

これと矛盾していませんか?サーバにPostしないでSessionに入れるのは不可能です。

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