Czy można ustawić ClientID
dowolnego kontrolera serwera asp.net? Jak mogę to zrobić?Ustaw identyfikator klienta w asp.net
Odpowiedz
Dobra wiadomość jest taka, że w VS 2010 .Net 4 będziesz mieć complete control over Client IDs!
Nadal dla aktualnych wersji .Net można dokonać płatności. Zakładam, że potrzebujesz ID dla JavaScript. Jeśli tak, to po prostu identyfikator tak:
<script type="text/javascript">
var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>
+1 za bycie Jedi i czytanie umysłu ebattulgi, "Zdobądź ClientID, którego nie ustawiam" –
Nie zapomnij umieścić znaku # przed <% = oczekującym chcesz uzyskać rzeczywisty obiekt DOM, a nie tylko tekst identyfikatora klienta kontrolki. – KSwift87
Thx @ Kswift87 ma absolutną rację. zaktualizowałem swoją odpowiedź –
To niemożliwe. Identyfikator klienta jest generowany przez program ASP.NET. Od MSDN:
Wartość ClientID są generowane przez złączenie wartość identyfikatora kontrolki a wartością UniqueID jego kontrolą macierzystej. Jeśli wartość identyfikatora kontrola nie jest określona, używana jest automatycznie wygenerowana wartość .
Nawet myślę, że nie jest to możliwe w Visual Studio 2008. Ponieważ Control.ClientID Property dostać tylko metody
Edit: Ale w Visual Studio 2010 (.NET 4.0) możliwe jest
Jak to jest możliwe? W VS2015 ta metoda jest nadal dostępna. – FrenkyB
Jest to funkcja ASP.NET 4.0.
radziłbym przed ten sposób, chyba że jesteś pewien, że chcesz to zrobić, ale jest na to sposób. Można zastąpić właściwość ClientID
z kontrolki serwera.
public override string ClientID
{
get { return "whatever"; }
}
Ale jak zauważyli inni, nie można tego zrobić z zewnątrz.
Program ASP.NET 4 ma właściwość ClientIDMode dla każdego elementu sterującego. Jeśli chcesz wyłączyć ClientID całkowicie można użyć this trick - to działa na każdej kontroli zakaz ogłaszania
dla VS 2010, .NET 4.0:
Jeśli tylko spróbować ustawić ctrl.ClientID="stringID"
dostaniesz Błąd, mówiąc, że ClientID jest tylko do odczytu. Można kontrolować wartość ClientID korzystając ClientIDMode - która określa algorytm, z którymi ClientID jest ustawiony:
ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static; //ClientID value is set to the value of ID
Znaczniki HTML będzie oznaczyć html kontrolą za pomocą ID kontrolki. W ten sposób masz pewną kontrolę od kodu z tyłu.
Dlaczego musisz to zrobić? –
Wyjaśnij, co próbujesz osiągnąć, a następnie możemy zaproponować alternatywę. –