- - PR -
SPREAD for .NET サブウィンドウから親画面への値渡し
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-21 18:08
お世話になります。
ASP.NETで開発を行っております。 行いたいのは以下のことです。 @親画面を開いたまま、サブウィンドウを開く。 Aサブウィンドウのイベントにより、親画面のSPREADの指定したセルに値を反映させる。 B親画面のポストバックを行わず、サブウィンドウをとじる。 上記のA及びBはJavaScriptを発行し、実行させたいと思っています。 しかし、現在Aだけうまくいきません。 以下の製品サポートHPからサンプルのスクリプトを取得し、 実際にサンプル画面を作り行ってみたのですが、サンプルすらうまく実行できません。 以下は、サブウィンドウのイベントに記述しているスクリプトです。 -------------------------------------------------------- St = "<script language='javascript'>" St &="function setMyValue(){" St &="var fp=window.opener.document.all('FpSpread1');" St &="fp.SetValue(1,1,'Hi!',true);}" St &="window.close();" St &="</script>" Response.Write(St) -------------------------------------------------------- スクリプト実行時には、Bサブウィンドウを閉じる処理が行われているので おそらくSPREDに挿入する個所の記述が間違っていると思います。 それとも、ポストバックしないと値は反映されないのでしょうか…。 ご教授お願い致します。 ***参照したHP*** [製品FAQサーチ] <http://www.grapecity.com/japan/Support/product_faq_search.asp> ID:7069 「サブウィンドウから親ウィンドウのSPREADにデータを設定したい。」 | ||||||||
|
投稿日時: 2006-01-21 18:33
いえ、(2) は間違ってはいないでしょう。 fp と opener の参照は正しいんですよね? (正しくなければエラーになりますけど...) window.close(); がない状態で試してみてもダメでしたか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-21 18:50
じゃんぬねっと様
window.close();がない記述でも行ってみましたが、変化はありませんでした…。 fp と opener の参照は正しいんですよね? ↑お恥ずかしいのですが、「参照」という概念が私自身定着していません;; 状況は以下の通りです。 ◆.NETの1プロジェクトにて、2つのWebform(WebForm1とWebForm2)を使用。 ◆WebForm1を親画面とし、SPRED(IDはFpSpread1)とボタン(IDはButton1)を貼り付け。 ◆WebForm2を子画面とし、ボタン(IDはButton2)を貼り付け。 ◆スタートページをWebForm1に設定。 ◆親画面のボタン(Button1)押下で子画面(WebForm2)を起動。 ◆子画面のボタン(Button2)押下で先述のスクリプト実行。 以上の状況で実行中です。 何か致命的なミスがありますでしょうか…。 | ||||||||
|
投稿日時: 2006-01-21 19:03
まあ、Script エラーが起こっていなければ良いです。 というか、起きていませんよね?? たとえば、IE の場合「スクリプトのエラーを通知する」状態でないと判りにくいですが。
ここはどうみても問題ないように思えるんですが... 子ウィンドウを開ける場所も問題ないでしょうし... (;_ _) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-21 19:14
じゃんぬねっと様
ブラウザのインターネットオプション詳細設定にて 「スクリプトのエラーごとに通知を表示する」にしています。 なにかHTMLにも記述が必要なのでしょうか…。 HTMLはまったくいじっていません。 | ||||||||
|
投稿日時: 2006-01-22 01:22
ID さえ合っていれば良いので、必要はないハズです...。 逆に質問なのですが、スクリプトなのにポストバックしないと反映されないってことなのでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-23 10:07
IISに「fp_client」の仮想フォルダは登録してありますか?
(登録してなかったら、ランタイムエラーになるから...違うか...)
Button2 が押下された際、setMyValue を呼び出している部分はどのようにコーディングされていますか? | ||||||||
|
投稿日時: 2006-01-23 23:08
お世話になってます。
以下の方法によりできましたのでご報告しておきます。 @子画面のHTML<HEAD>〜</HEAD>内に以下を記述。 ------------------------------------------------------------------------ <script language="javascript"> var i; var j; var NAME; function setMyValue(i,j,NAME){ var fp=window.opener.document.all("FpSpread1"); fp.SetValue(i,j,NAME,true); } </script> ------------------------------------------------------------------------ A子画面のボタンイベントに以下を記述。 ------------------------------------------------------------------------ Dim script As String Const scriptName As String = "setMyValue" Dim i As Integer = 2 '行番号 Dim j As Integer = 3 '列番号 Dim NAME As String = "sample" '反映したい内容 If Not IsStartupScriptRegistered(scriptName) Then script = "<script language=""javascript"">" & vbNewLine script &= "<!--" & vbNewLine script &= " setMyValue(" & i & "," & j & "," & NAME & ");" & vbNewLine script &= "-->" & vbNewLine script &= "</script>" RegisterStartupScript(scriptName, script) End If ------------------------------------------------------------------------ 以上です。 またよろしくお願いいたします。 |
1