asp.netでClientIDを設定する
-
07-07-2019 - |
質問
asp.netサーバーコントロールの ClientID
を設定することはできますか?どうすればいいですか?
解決
良いニュースは、VS 2010 .Net 4では、クライアントIDの完全な制御!
.Netの現在のバージョンについては、まだ期限があります。 JavaScriptのIDが必要だと思います。その場合は、次のようにIDを取得します。
<script type="text/javascript">
var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>
他のヒント
あなたがそれをやりたいと確信していない限り、これをやめることを勧めますが、方法があります。サーバーコントロール内から ClientID
プロパティをオーバーライドできます。
public override string ClientID
{
get { return "whatever"; }
}
しかし、他の人が指摘しているように、外部からはできません。
それは不可能です。 ClientIDはASP.NETによって生成されます。 MSDN から:
>ClientID値は以下によって生成されます のID値を連結する コントロールとそのUniqueID値 親コントロール。 ID値が コントロールが指定されていない、 自動生成された値が使用されます。
Visual Studio 2008では不可能だと思います。 Control.ClientID プロパティにはgetメソッドのみ
編集:ただし、Visual Studio 2010(.Net 4.0)では可能です
ASP.NET 4には、そのための各コントロールにClientIDModeプロパティがあります。 ClientIDを完全にオフにする場合は、このトリックを使用できます。ポストバック以外のコントロール
これはASP.NET 4.0の機能です。
VS 2010、.NET 4.0の場合:
ctrl.ClientID =&quot; stringID&quot;
を設定しようとすると、ClientIDは読み取り専用であるというエラーが表示されます。 ClientIDMode を使用して、ClientIDの値を制御できます。 a>-ClientIDが設定されるアルゴリズムを定義します:
ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static; //ClientID value is set to the value of ID
htmlマークアップは、コントロールのhtmlをコントロールのIDでマークします。したがって、コードビハインドからある程度制御できます。