So che ClientID viene utilizzato per javascript e UniqueId per il lato server e che ClientID utilizza un trattino di sottolineatura (_) e UniqueId utilizza un segno di dollaro ($) in asp.net 2.0. Ma quello che non capisco è perché usare due ID diversi. Perché non è possibile solo O utilizzare il carattere di sottolineatura O utilizzare il segno del dollaro in entrambi: lato server e lato client. Qualcuno può spiegarlo?C# asp.net Perché c'è una differenza tra ClientID e UniqueID?
risposta
(Oltre alla mia risposta originale al di sopra)
Beh, come probabilmente sapete UniqueID viene utilizzato con l'attributo nome e ClientId con l'attributo id del tag HTML rendering. UniqueID utilizza i due punti come separatore. D'altra parte ClientId utilizza il carattere di sottolineatura come separatore, poiché i due punti non sono consentiti nei nomi delle variabili JavaScript. ClientID è anche univoco nella pagina come UniqueID, ma ClientID è mirato all'elaborazione lato client e UniqueID per lato server (piuttosto ovvio), quest'ultimo in particolare per instradare i dati e gli eventi postback con i controlli compositi
Tuttavia Penso che alcuni ragionamenti potrebbero essere che usare il carattere di sottolineatura come separatore nei normali ID di controllo è un comportamento abbastanza comune e quindi il carattere di sottolineatura non può essere usato in UniqueID come separatore di controllo (se teoricamente pensiamo di gestire con una proprietà), perché non si può fare distinzione tra i controlli. D'altra parte per lo stesso ragionamento, non è possibile utilizzare due punti in ID controllo, Page Framework non lo consente, in modo che si assicuri che i due punti non possano accedere agli ClientID (questo a causa di JavaScript non piace) .
E per questi motivi, colon è una scelta piuttosto buona da utilizzare in UniqueID, poiché il metodo FindControl può utilizzarlo per spostarsi nella struttura di controllo e individuare i controlli (può dividere facilmente UniqueID).
this.UniqueID è il nome del controllo aggiunto a tutti i contenitori di denominazione, come un nome di controllo completo. this.ClientID è il valore che apparirà nell'attributo id del controllo, è una traduzione di l'ID univoco (beh quasi) conforme all'HTML (i caratteri di sottolineatura non sono realmente compatibili con html).
- 1. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 2. Differenza tra ASP.Net, C# .Net e VB.Net?
- 3. Imposta ClientID in asp.net
- 4. Differenza tra asp e asp.net
- 5. Differenza tra WebHook e servizi Web ASP.NET?
- 6. Differenza tra c() e append()
- 7. Differenza tra WebHook ASP.NET e Signal-R
- 8. Differenza tra ASP.net Handler e Handler Generico
- 9. Differenza tra ASP.NET MVC 3 e 4?
- 10. Differenza tra ScriptManager e ScriptManagerProxy in asp.net
- 11. Qual è la differenza tra ASP.NET e ASP.NET MVC?
- 12. c'è una differenza tra [Serializable] e [Serializable()] in C#?
- 13. C'è qualche differenza tra C c; e C c = C() ;?
- 14. Differenza tra char * e char [] in C
- 15. Differenza tra C# utilizzando e l'importazione Java
- 16. C'è una differenza tra XSD: Pattern e C# Regex?
- 17. Differenza tra byte e caratteri in C
- 18. Differenza tra jquery.post e jquery.get?
- 19. Differenza tra callback client e metodi pagina Ajax - ASP.NET
- 20. Differenza C++ tra 0 e 0,0
- 21. Differenza tra operatori uguali (LINQ) e == (C#)?
- 22. Differenza tra char e firma in C++?
- 23. Differenza tra Convert.ToString() e .ToString() in C#?
- 24. Differenza tra long e int in C#?
- 25. Differenza tra una "coroutine" e una "discussione"?
- 26. IIS 7 - Differenza tra estensibilità .NET e ASP.NET
- 27. Differenza tra '(virgoletta singola) e "(virgoletta doppia) in ASP.NET 4
- 28. Esiste una differenza tra System.Windows.Clipboard e System.Windows.Forms.Clipboard?
- 29. Differenza di enum tra java e C++?
- 30. differenza tra Java e C++ copy constructor
Quindi, i caratteri di sottolineatura iniziali non sono (realmente) conformi a HTML. Allora perché non usare i simboli del dollaro? Perché non utilizzare ClientId sul lato server invece di UniqueId? Sono entrambi esattamente gli stessi, l'unica differenza è l'uso del segno del dollaro e sottolineatura. – Martijn
Lo scopo di ClientID è restituire l'ID identificativo univoco del controllo (è equivalente a UniqueID ma utilizza il carattere di sottolineatura come separatore di controllo) che può essere utilizzato nello script sul lato client. – JamesM
Penso che tu non abbia capito il mio punto :) A Javascript non piacciono i segni del dollaro e quindi usa i caratteri di sottolineatura. Questo è chiaro ora. Quindi la mia prossima domanda è: perché non usare i caratteri di sottolineatura sul lato server? Quindi, perché non usare ClientID sul server? Perché deve esserci una proprietà distinta che utilizza i segni del dollaro? Perché i caratteri di sottolineatura non possono essere utilizzati sul server? – Martijn