2009-08-30 6 views
4

JavaScriptを介してFormviewのinserttemplateで終了するテキストボックスを取得する必要があります。JavaScriptを使用してFormviewからオブジェクトを取得

どちらのリターンはnull:問題は、フォームのロードでレンダリングされていないことFormViewコントロールである

$get('txtTitle'); 
document.getElementById("txtTitle"); 

...あなたが述べたように

+0

あなたは何を達成するために私に教えてもらえますか? –

答えて

7

は、FormViewコントロールの内容がではなく、要求に応じて、サーバー上でレンダリングされていますページの読み込み。つまり、フォームビューのコントロールにアクセスするにはこのコードを試してください。独自のコントロールIDに一致するように 'FormView'の名前を変更します。

document.getElementById('<%=FormView.FindControl("txtTitle").ClientID%>'); 

必要な場合は、ここでは、ライフサイクルの考慮事項がある場合の背後にあるコードでJavaScriptを登録するために使用できるいくつかの便利なイベントです。

ItemCreatedイベントは、すべての行がFormViewコントロールで作成された後に発生します。これは、コントロールが最初にレンダリングされるとき、またはユーザーが別のレコードに移動したときに発生します。このイベントを使用して、このイベントが発生するたびに、行の内容の追加や変更などのカスタム・ルーチンを実行するイベント処理メソッドを提供できます。

注: ItemCreatedイベントは、FormViewコントロールがデータにバインドされる前に発生します。バインドされたフィールドの値を変更するには、DataBoundイベントを使用します。

+0

アプリケーションを実行するとエラーが表示されます。コントロールにコードブロック(例:<% ... %>)が含まれているため、コントロールコレクションを変更できません。 – dani

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ요。何故ですか? – dani

+1

ここでの違いは、生成されたParse Treeクラスの一部として<%= %>という式がASP.NET出力に埋め込まれていることです。実際にページの先頭に置いておきたい場合は、代わりに<%# %>式を実行時に埋め込むようにしてみてください。私はあなたのためにこれをテストする方法はないが、うまくいくかもしれない。 – PortageMonkey

関連する問題