2009-09-15 13 views
9

È possibile impostare lo di qualsiasi controllo del server asp.net? Come posso fare questo?Imposta ClientID in asp.net

+0

Perché hai bisogno di farlo? –

+1

Spiega cosa stai cercando di ottenere e quindi potremmo essere in grado di suggerire un'alternativa. –

risposta

19

La buona notizia è che in VS 2010 .Net 4, avrai complete control over Client IDs!

Ancora per le versioni correnti di .Net, è possibile effettuare i dovuti. Presumo che tu abbia bisogno dell'ID per JavaScript. Se è così, basta avere l'ID in questo modo:

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

+1 per essere un Jedi e leggere la mente di ebattulga, "Ottieni ID cliente non impostato" –

+2

Non dimenticare di mettere il segno # davanti al <% = in sospeso vuoi ottenere il vero oggetto DOM e non solo il testo del ClientID del controllo. – KSwift87

+1

Thx @ Kswift87 è assolutamente giusto. ho aggiornato la mia risposta –

3

Questo non è possibile. Il ClientID è generato da ASP.NET. Da MSDN:

Il valore ClientID viene generato dal concatenando il valore ID del controllo e il valore UniqueID del suo controllo genitore. Se il valore ID di non viene specificato, viene utilizzato un valore generato automaticamente da .

1

Anche se penso che non sia possibile in Visual Studio 2008. Perché Control.ClientID proprietà è ottenere solo metodo

Edit: Ma in Visual Studio 2010 (.Net 4.0) è possibile

+1

Com'è possibile? In VS2015 questo metodo è ancora disponibile. – FrenkyB

1

Questa è una caratteristica ASP.NET 4.0.

3

Vorrei consigli contro questo modo se non si è sicuri di voler fare, ma c'è un modo. È possibile sostituire la proprietà dal controllo server.

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

Ma come altri hanno notato, non è possibile farlo dall'esterno.

1

ASP.NET 4 ha la proprietà ClientIDMode su ciascun controllo per quello. Se si vuole disattivare completamente ClientID è possibile utilizzare this trick - funziona per qualsiasi controllo non-postback

0

Per VS 2010, .NET 4.0:

Se hai appena tenta di impostare ctrl.ClientID="stringID" otterrete un errore, dicendo che ClientID è di sola lettura. È possibile controllare il valore di ClientID usando ClientIDMode - che definisce l'algoritmo con cui è impostato ClientID:

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

il markup HTML segnerà HTML del tuo controllo con l'ID del controllo. Quindi hai un certo grado di controllo dal code-behind.

Problemi correlati