2009-09-15 88 views
9

asp.netサーバーコントロールのClientIDを設定することはできますか?これどうやってするの?asp.netでClientIDを設定する

+0

なぜあなたはそれをする必要がありますか? –

+1

達成しようとしていることを説明してから、代替案を提案することができます。 –

答えて

19

VS 2010 .Net 4では、complete control over Client IDsがあります。

.Netの現在のバージョンについては、引き続きお試しいただけます。私はあなたがJavaScriptのIDが必要と仮定します。そうであれば、IDを取得してください:

<script type="text/javascript"> 
    var myTextBox = $('#<%=TextBox1.ClientID%>'); 
</script> 
+2

+1 Jediであり、ebattulgaの心を読んでいると、 "Get ClientIDを私は設定しません" –

+2

<%=の前に#記号を置くことを忘れないでください。コントロールのClientIDのテキスト。 – KSwift87

+1

Thx @ Kswift87それは絶対に正しいです。私は私の答えを更新しました –

3

これはできません。 ClientIDはASP.NETによって生成されます。 MSDNから:

ClientID値は コントロールのID値とその 親コントロールの一意ID値を連結 によって生成されます。 のID値が指定されていない場合、自動的に生成された値 が使用されます。

1

でも、Visual studio 2008では不可能だと思います。 Control.ClientIDため、プロパティは、唯一の方法

編集を取得しました。しかし、Visual Studioの2010(.NET 4.0)で、ASP.NET 4.0の機能です

+1

どうすれば可能ですか? VS2015では、この方法はまだまだです。 – FrenkyB

1

可能です。

3

あなたがそれをしたいと確信していない限り、私はアドバイスをしますが、方法があります。 ClientIDプロパティは、サーバーコントロール内からオーバーライドできます。

public override string ClientID 
{ 
    get { return "whatever"; } 
} 

しかし、他の人が指摘したように、あなたは外からはできません。

1

ASP.NET 4には、各コントロールにClientIDModeプロパティがあります。あなたがのClientIDをオフにしたい場合は 完全あなたはthis trickを使用することができます - それは、任意の非ポストバック制御のために働く

0

VS 2010の場合は、.NET 4.0:あなただけの設定しようとすると

あなたが得るでしょうctrl.ClientID="stringID" ClientIDが読み取り専用であるというエラー。

ctrl.ID = "IDstring"; 
ctrl.ClientIDMode = ClientIDMode.Static; //ClientID value is set to the value of ID 

HTMLマークアップは、コントロールのIDを使用して、コントロールのHTMLをマークします。クライアントIDが設定されると、アルゴリズムを定義する - あなたはClientIDModeを使用してクライアントIDの値を制御することができます。したがって、コードビハインドからある程度の制御が可能です。

関連する問題