- PR -

DataGridのCheckBox(テンプレート)について

投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-10 18:44
一人でやってる気がしますが、、、
HTMLボタンクリックでJavaScript関数を呼び、
さらにcsファイルのクリックイベントでセッションを書き込んでみました。

期待通りの動きはしているのですが、問題は起きますでしょうか?
つまり、クリックイベントとJavaScript関数を同時(順番に呼ばれますが)処理して不具合は起きないでしょうか。

どなたか助言お願い致します。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-10 19:53
クリックイベント時にサーバー側で必要な情報を計算して新しい画面を開く
JAVAスプリクトを作成して出力、その際出力先にページのパラメータに必要な
情報を付加する(セッションでもいいですけど)

コード:
private void クリックイベント(object sender, System.EventArgs e) 
{ 
	// DataGridから値を取得
	string outString = "";
	foreach( DataGridItem item in DataGrid1.Items )
	{
		CheckBox tt = (CheckBox)item.Cells[0].Controls[1];
		if(tt.Checked)
			outString += item.Cells.Cells[5].Text + ",";
		
	}
	// セッションに値を設定
	Session["Param"] = outString;

	// JAVAスプリクト(内容は省略)
	String clientScript = "別ウィンドウで他のページを出力するJAVAスプリクト";
	// JAVAスプリクト登録
	RegisterClientScriptBlock("OpenWindow", clientScript);
}

ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-10 19:58
引用:

HTMLボタンクリックでJavaScript関数を呼び、
さらにcsファイルのクリックイベントでセッションを書き込んでみました。

期待通りの動きはしているのですが、問題は起きますでしょうか?
つまり、クリックイベントとJavaScript関数を同時(順番に呼ばれますが)処理して不具合は起きないでしょうか。

どなたか助言お願い致します。



HTMLボタンのonClickでJavaScript関数の処理をして隠しSubmitボタンをClickしている
ことですかね。であれば特に問題ないと思いますが
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-10 20:05
ありがとうございます。

private void Page_Load(省略)
{
   TEST_cmd.Attributes["onClick"] = "JavaScript:TEST_html();";
}
として、JavaScriptのFormでsubmitしています。

これは同じ意味でしょうか?
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-10 22:34
引用:

BB.NKさんの書き込み (2004-02-10 20:05) より:
ありがとうございます。

private void Page_Load(省略)
{
   TEST_cmd.Attributes["onClick"] = "JavaScript:TEST_html();";
}
として、JavaScriptのFormでsubmitしています。

これは同じ意味でしょうか?



これでも問題ないと思いますよ
ただ前にも書きましたがクリック時でよければサーバ側でだいたい処理できますよ
くわしくは2つ前の書き込みを参考にしてください
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-12 09:57
ありがとうございます。
ゆうじゅんさんから教えていただいた方法でコーディングしているのですが、
ヘルプを見てもよくわかりませんでした。
このコードでRegisterClientScriptBlockの引数clientScriptには
作成したJavaScript関数の名前をいれればよろしいのでしょうか?
また、"OpenWindow"というのは決まり文句のようなものでしょうか。

引用:

ゆうじゅんさんの書き込み (2004-02-10 19:53) より:
コード:
private void クリックイベント(object sender, System.EventArgs e) 
{ 
	// DataGridから値を取得
	string outString = "";
	foreach( DataGridItem item in DataGrid1.Items )
	{
		CheckBox tt = (CheckBox)item.Cells[0].Controls[1];
		if(tt.Checked)
			outString += item.Cells.Cells[5].Text + ",";
		
	}
	// セッションに値を設定
	Session["Param"] = outString;

	// JAVAスプリクト(内容は省略)
	String clientScript = "別ウィンドウで他のページを出力するJAVAスプリクト";
	// JAVAスプリクト登録
	RegisterClientScriptBlock("OpenWindow", clientScript);
}




無月 重造
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 67
投稿日時: 2004-02-12 10:07
引用:

BB.NKさんの書き込み (2004-02-12 09:57) より:
また、"OpenWindow"というのは決まり文句のようなものでしょうか。



別に決まり文句ではないですよ。実際にブラウザにHTMLとして書き出されるのはscriptの部分だけですし。

ヘルプを見ると
「スクリプト ブロックを識別する一意のキー。」
と書いてあります。
これから考えるに、複数のスクリプトを判別するためのキーではないかと。
やはりそのスクリプトの用途を示すような名前をつけてやるべきでしょうね。

[ メッセージ編集済み 編集者: 無月 重造 編集日時 2004-02-12 10:13 ]

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