- PR -

VWD ページロード時にJavascriptを実行したい

1
投稿者投稿内容
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2008-06-09 19:49
いつもお世話になっております。

環境 Visual Web Developer2005 Express Edition
言語 VisualBasic

ところで、ページロード時において、javascriptを実行させたいのですが、
xxxは、Nullまたはオブジェクトではありません。のエラーで困っています。

実際のコード
Protected Sub Page_Load(ByVal sender as Object,ByVal e as System.EventArgs)
Dim Script as New System.Text.StringBuilder()

With Script
.Append("<script language='javascript' type='text/javascript'>" & vbCrLf)
.Append(vbTab & "document.form22.Text11.value = 'AAA';" & vbCrLf)
.Append("</" & "script>")
End With

ClientScript.RegisterClientScriptBlock(Me.GetType(), "key", Script.ToString)

<html>
<body>
<form name="form22" id="form22" runat="server" >
<input name="Text11" id="Text11" type="text" />
</form>
</body>
</html>

今、テスト的にやっておりますので、コード自体は短い物となっております。
上記の記載方法でどこがダメなのか、悩んでおります。

以上、ズバリ誤りをご指摘して頂ける方、もしくは、解決に導くようなURL先をご提供して頂ける方がおりましたら、よろしくお願いいたします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-06-09 21:26
当方では「Nullまたはオブジェクトではありません」とは出ませんが、
RegisterClientScriptBlockはaspxファイルに定義したテキストボックスより先に現れるので
load時に実行したらText11にアクセスできない気がします(まだ出来てないから)。
RegisterStartupScriptを使うとどうですか?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-06-10 06:17
<input>タグをTextBoxにするか
<input>タグにrunat="server"を追加してHTMLサーバーコントールにして
Page_Loadイベントハンドラで直接書き換えたらどうでしょうか。

<input name="Text11" id="Text11" type="text" runat="server" />

どうしても、JavaScriptで書き換えたいなら
IPホンさんが指摘しているようにJavaScriptが<input>タグの後に
生成されるようにする必要があります。

できれば、<body>セクションにJavaScriptを混在させると保守が大変ですから
JavaScriptを外部にファイルにすることをお勧めします。
この場合、window.onloadイベントで<input>タグの値を設定します。

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2008-06-10 09:18
べるさん、Accessさん、

ご返答の程、ありがとうございます。

アドバイス頂きました内容につきまして、テストさせて頂きます。
1

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