- PR -

[ASP.NET2.0:VB.NET]Javascriptで制御したい(マスターページあり)

1
投稿者投稿内容
りんご
会議室デビュー日: 2006/10/07
投稿数: 9
投稿日時: 2006-10-07 01:22
こんばんは。
現在ASP.NET2.0:VB.NET、Spread(Web2.0)を使用して開発を行っています。
すべて手探りで進めているのですが、どうにもわからなくなってしまったので
ご存知の方がいらっしゃいましたらご教授ください。

【問題点】Javascriptでdocument.all("spdMyData")で指定してもnullが返ってくる

マスターページを作成し、コンテンツのページを作成している最中なのですが、
(そのページにはSpread、ボタンコントロール、ラベルがあります)
ボタンを押下した際にOnClientClickでJavascript関数への関連付けをしてあり
その処理に入るところまでは確認したのです。

function funTest(){
alert('入りました');
var spd=document.all("spdMyData")
alert(spd);
return;
}

ですが、spdには何も入っておらず(=null)処理が書けない状態です。
ボタン押下時の入力チェックや、onLoadイベントなどで処理をしたいのに
できない状態です。ちなみにテキストボックスなどの他のコントロールを配置
して取得してみようとしましたが、結果は同じでした。

マスターページを使用しないページを作成して同じようにテストしてみたところ、
nullではなくobjectがメッセージで表示されました。
Formの問題なのでしょうか?。。。

どのように対処していいかが分からず、その前にこれと言った原因も分かっていないの
で、ご存知の方がいらっしゃいましたらご教授よろしくお願いいたします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-10-07 02:56
HTMLソースみてください。spdMyDataというコントロールはないんじゃないですか?
idがctl00_ContentPlaceHolder1_spdMyDataみたいになっていると思います。
choir
会議室デビュー日: 2006/07/31
投稿数: 15
お住まい・勤務地: 東京都
投稿日時: 2006-10-07 03:52
MSDNでClientIDプロパティのことを調べると良いんじゃないかな。
りんご
会議室デビュー日: 2006/10/07
投稿数: 9
投稿日時: 2006-10-09 00:36
べるさん、choirさん、コメントありがとうございます。

べるさんの言う通り、idでつけた名称ではなく、
>>idがctl00_ContentPlaceHolder1_spdMyData
のようにHTMLでなっていました。

マスターページのContentPlaceHodlerの中に作成しているページが
コンテンツとなるので、通常どおりidの名称を指定するだけでは
できないのですね。

var spdMyData=document.all("ctl00_ContentPlaceHolder1_spdMyData");
で実行したらオブジェクトが取得できました。
ありがとうございます。

また、choirさんからMSDNでClientIDを調べるととありましたので
早速参照しました。まだ全部は読みきれていませんが、これから習得します。
ありがとうございます。

今後も質問をなげるかもしれませんが、その時はまたご教授よろしくお願いいたします。
ありがとうございました。
1

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