runat =“ server”がASP.NETで使用されないのはいつですか?
-
27-10-2019 - |
質問
使用する必要がないとき runat="server"
asp.netで?
編集:すべての答えに感謝しますが、私は本当に考えていました runat="server"
内部 <asp:
鬼ごっこ。
解決
使用 runat=server
属性ASP.NETコントロールを使用している場合、および/またはCode-Behindのこれらのコントロールへのプログラムアクセスが必要です。
HTMLコントロールはこの属性を必要としません。 html要素がある場合は便利です <span>
<div>
, 、 また <table>
Code-Behindでそれらにアクセスできるようにしたいとき。
<asp:Label runat="server" id="foo" />
<div runat="server" id="bar />
...
foo.Text = "Hello Label";
foo.Attributes["class"] = "baz";
他のヒント
使用する必要があります runat="server"
サーバーコントロールとして解析したいコントロール。
で任意の要素 runat="server"
ページのherのサーバーコントロールに解析されます。他のものはプレーンテキストとして処理され、入力されます LiteralControl
ページ階層のコントロール。
例外は、実際の要素ではない要素ですが、たとえば別のサーバータグ内の特別なタグです。 ContentTemplate
タグ。彼らは必要ありません runat="server"
含まれるコントロールがそれらを解析するためです。
サーバーサイドASP.NETにサーバー側の変数を当社に対してレンダリングしたくない場合。
一般的に言えば、レイアウト目的でのみ使用されるサーバー側EGでDOM要素を操作する必要がない場合は使用しません。
runat = "server"がなければ、HTMLコントロールサーバーサイドコントロールを作成する他の方法もありません。 runat = "client"を行うことができないため、奇妙なことのように見えます。
したがって、要約すると、ASP .NETコントロールをこれまでに除外することはできません。おそらく、ASP .NET Webフォームを作成した開発者のすべてのサーバーサイドコントロールを見つけるためのEasietと最もクリーンな方法でした。
ソース: http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/
タグrunat = "server"は、スクリプトブロック内に含まれるコードがサーバーで実行される(クライアントではなく)実行されることを示します。実行時に、ASP.NETは、このコードとページクラスのインスタンスを含むサーバー側オブジェクトを作成し、特定のタイプのインスタンスとしてページ内に定義されたコントロールを含む(system.web.ui.webcontrols.textbox、例えば)。このサーバー側のオブジェクトは、ユーザーリクエストで呼び出され、イベントに応じてコードを実行します。
ランタイムでコントロールを作成します
ランタイムに1つのラベルが必要です。その時間はrunat = "server"が必要ありません
例
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label lblNew = new Label();
lblNew.ID ="lblnew";
lblNew.Text ="Test";
}
}
このコードは、ページロードイベントでのランタイムでラベルを作成します