13

http://i.stack.imgur.com/dVjHt.jpg

ここに画像の説明を入力してください

私はこのクラスControlの実際の使用法を理解していませんでしたtypekey

一般的に、私は常に:で使用しましたthis , GetType() , "xx"

でも今は本当に理解したいです。


msdn:

コントロール:「クライアントスクリプトを登録しているコントロール」

それで...?誰が登録したのか、どのような違いがありますか?スクリプトはページの先頭にあります

タイプ:「クライアントスクリプトブロックのタイプ」

タイプ ???そのjavascript。なぜ彼は私から別のタイプを望んでいるのですか?

キー:「一意の識別子」

私が理解できること-後で削除する場合のために...しかし、私はいくつかのより高度な説明が欲しいです

私が本当にそれらのパラメータで遊んでいなければならない現実のシナリオを お願いできますか?

4

3 に答える 3

3

最も重要な部分は、スクリプトを登録するhtmlタグのコントロールです。たとえば、ユーザーコントロールがあり、そのためだけにスクリプトを実行する場合は、この行を使用します。

ScriptManager.RegisterStartupScript(this, this.GetType(), "alertscript", "document.getElementById('userControl_h1TAG')", true); 

ただし、ブロックとスクリプトをそのページのすべての部分に登録する場合は、ユーザー制御のCSコードで次の行を使用します。

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alertscript", "document.getElementById('page_h1TAG')", true);
于 2011-11-29T11:10:11.787 に答える
1

このメソッドは、パラメーターコントロールを使用して、を参照して呼び出しを行うSystem.Web.UI.ScriptManager.RegisterClientScriptBlock内部メソッドをバックグラウンドで呼び出します。System.Web.UI.ScriptRegistrationManager.RegisterClientScriptBlockSystem.Web.UI.ClientScriptManager.RegisterClientScriptBlockcontrol.Page.ClientScript.RegisterClientScriptBlock

したがって、実際には、次のように電話をかけると、次のようになります。

MyScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertScript", "alert('hi')", true);

これは、次の呼び出しと同じです。

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alertScript", "alert('hi')", true);        

typeパラメータは、2つの異なるタイプが同じ文字列キーでスクリプトを登録しようとするときに便利です。

于 2011-11-29T09:48:52.180 に答える
0

MSDNを調べた後、パラメーターがわずかに異なるメソッドを見つけましたが、答えによってさらに洞察が得られると思います:(http://msdn.microsoft.com/en-us/library/bb350750.aspx):

コントロール:このメソッドを使用して登録されたクライアントスクリプトブロックは、コントロールが更新中のUpdatePanelコントロール内にあるコントロールを表す場合にのみページに送信されます。

タイプ:このパラメーターは通常、typeof演算子(C#)またはGetType演算子(Visual Basic)を使用して指定され、スクリプトを登録しているコントロールのタイプを取得します。

そして、重要なのは、1つのコードブロックが2回含まれていないことを確認することだと思いますか?または、同じキーを再度使用すると警告が表示されますか?

于 2011-11-28T16:45:50.463 に答える