フォームにrunat =サーバーが設定されている場合はどのように伝えることができますか?
質問
Asp.Netページをコーディングするとき、あなたは一般のASPXでラナ属性を追加します:
<form id="form1" runat="server">
これは、ユーザーがこのつまりを行っていなかった場合、彼らはこれだけやったの背後にあるコードで伝えることは可能です
<form id="form1">
ここではフォームは、ID「をForm1」を持っていますが、私の場合、私はこのことを知りません。
:これは私が探しています何であるなどの背後にあるコードif(Page.HasForm)
{
}
解決
あなたは今まで.aspxページごとに、その上に「にrunat =サーバー」で1個のフォームタグを持つことができます。あなたがしなければならないPage.Formがnullであるかどうかを確認することです。それがnullだ場合は、サーバーをラナするためにマークされているno形式はありません。
if (Page.Form != null)
{
}
これは、.aspxのページプロセス要素を作り、サーバー側で対応するオブジェクトを作成するにrunat =「サーバー」の部分です。コンポーネントがサーバー上で実行されていない場合、それは、ページのコントロール階層に追加されていません。
他のヒント
のvar V = this.Form.TagName。 //にrunatとして集約しているフォームの名前を取得します。
そのラナとして集約していない場合はもちろん、あなたのコードが背後とにかく実行されません...
あなたは、コード・ページでC#またはVisual Basicのコードを、あなたがにrunat = serverオプションが設定されていないオブジェクトにアクセスすることはできませんときます。
あなたは簡単にソートのme.controlsページか何か(私は正確なコードを知らないが、それはこれに近いです)を使用してページからすべてのコントロールにアクセスし、フォームを取得するには、コントロールの種類を確認することができますます。
なぜあなたはそれを知っている必要がありますか?ページがラナ=サーバーのフォームを持っていない場合、それは実際にサーバーページとして使用することはできません。
あなたは、分離コードからフォームにアクセスすることができるだろう。
Response.Write(form1.Name);
にrunat = "サーバー" がなければ、あなただけのコンパイラエラーを取得したい。