Domanda

È possibile impostare il ClientID di qualsiasi controllo server asp.net? Come posso farlo?

È stato utile?

Soluzione

La buona notizia è che in VS 2010 .Net 4, avrai controllo completo sugli ID client !

Sempre per le versioni attuali di .Net, puoi farlo. Presumo che tu abbia bisogno dell'ID per JavaScript. In tal caso, ottieni l'ID in questo modo:

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

Altri suggerimenti

Vorrei sconsigliarlo, a meno che tu non sia sicuro di volerlo fare, ma c'è un modo. Puoi sovrascrivere la proprietà ClientID dal controllo server.

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

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

Non è possibile. ClientID è generato da ASP.NET. Da MSDN :

  

Il valore ClientID è generato da   concatenando il valore ID di   controllo e il suo valore UniqueID   controllo dei genitori. Se il valore ID di   il controllo non è specificato, un   viene utilizzato il valore generato automaticamente.

Anche io penso che non sia possibile in Visual Studio 2008. Perché Control.ClientID ha ottieni solo il metodo

Modifica: ma in Visual Studio 2010 (.Net 4.0) è possibile

ASP.NET 4 ha la proprietà ClientIDMode su ciascun controllo. Se vuoi disattivare completamente ClientID puoi utilizzare questo trucco - funziona per qualsiasi controllo non postback

Questa è una funzione ASP.NET 4.0.

Per VS 2010, .NET 4.0:

Se provi a impostare ctrl.ClientID = " stringID " otterrai un errore, dicendo che ClientID è di sola lettura. Puoi controllare il valore di ClientID utilizzando 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 contrassegnerà l'html del controllo con l'ID del controllo. Quindi hai un certo grado di controllo dal code-behind.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top