Sé que esto se ha preguntado antes, pero he encontrado una forma diferente de obtener referencias a los controles en archivos JS externos, pero no estoy seguro de cómo se reduciría en términos de velocidad general.¿Existe alguna forma mejor de obtener ClientID en archivos JS externos?
Mi código es
public static void GenerateClientIDs(Page page, params WebControl[] controls) {
StringBuilder script = new StringBuilder();
script.AppendLine("<script type=\"text/javascript\">");
foreach (WebControl c in controls) {
script.AppendLine(String.Format("var {0} = '#{1}';", c.ID, c.ClientID));
}
script.AppendLine("</script>");
if (!page.ClientScript.IsClientScriptBlockRegistered("Vars")) {
page.ClientScript.RegisterClientScriptBlock(page.GetType(), "Vars", script.ToString());
}
}
Esto fue lo que puedo hacer referencia a la identificación de la página aspx en mis archivos JS.
¿Alguien puede ver los inconvenientes de hacer las cosas de esta manera? Solo comencé a usar archivos JS externos. Antes de que todo estuviera escrito en el UserControl mismo.
que se ve muy en mi opinión – ichiban
Asegúrese de que las etiquetas del elemento de script no están en su archivo .js: son HTML, no Javascript. – Anonymous
sí, el código generado va a la salida HTML –