Accidentalmente descubrí una diferencia entre 2.0 y 1.1 y la escribí para recordársela a todos.
Se trata de generar código para la página principal. Sabemos que los controles del servidor asp.net eventualmente se interpretarán en los scripts javascript y códigos html del front-end. Por ejemplo, el control "datagrid" se interpretará en la etiqueta "tabla" y el control "CheckBox". en "<tipo de entrada='casilla de verificación'... …"Etiqueta. Tanto asp.net2.0 como asp.net1.1 tienen este mecanismo, por lo que a menudo podemos usar este mecanismo para escribir algunos scripts javascript en la recepción para operar las etiquetas html generadas después de estas interpretaciones y llamar a algunos eventos. No sé si usas este método con frecuencia, pero yo lo uso a menudo y nunca me canso de él.
Un incidente accidental encontró un problema. Copié directamente algunos scripts js en 1.1 y los usé en proyectos en 2.0. No pude entender el código de interfaz generado por asp.net2. , se descubrió el secreto. En asp.net, después de interpretar el control del servidor en la columna de la plantilla de la cuadrícula de datos, la etiqueta generada generará una nueva ID basada en la ID del control del servidor original.
Por ejemplo (en asp.net1.1), el control CheckBox se usa en la columna de plantilla del control DataGrid:
<asp:datagrid id="myDataGrid" runat="servidor" AutoGenerateColumns="False" Height="100%" Ancho="100%"
EnableViewState="falso">
<AlternatingItemStyle CssClass="list_bai"></AlternatingItemStyle>
<ItemStyle CssClass="list_lan"></ItemStyle>
<HeaderStyle CssClass="list_1"></HeaderStyle>
<Columnas>
<asp:BoundColumn DataField="COLOR_ID" HeaderStyle-CssClass="disTd" ItemStyle-CssClass="disTd"></asp:BoundColumn>
<asp:TemplateColumn HeaderStyle-HorizontalAlign="Centro" ItemStyle-HorizontalAlign="Centro" HeaderText="Seleccionar<input type='checkbox' id='' onclick='doSelectAll();' title='Seleccionar todo'>">
<HeaderStyle HorizontalAlign="Centro" CssClass="list_1"></HeaderStyle>
<ItemStyle HorizontalAlign="Centro" CssClass="list_td"></ItemStyle>
<Plantilla de artículo>
<asp:CheckBox id="CheckBox1" runat="servidor"></asp:CheckBox>
</ItemTemplate>
</asp:ColumnaPlantilla>
<asp:HyperLinkColumn DataNavigateUrlField="COLOR_ID" DataNavigateUrlFormatString="InfoCOLOR.aspx?id={0}&flag=0"
DataTextField="COLOR_NAME" HeaderText="Nombre del color">
<HeaderStyle HorizontalAlign="Centro" CssClass="list_1"></HeaderStyle>
<ItemStyle HorizontalAlign="Centro" CssClass="list_td"></ItemStyle>
</asp:HyperLinkColumn>
<asp:BoundColumn DataField="COLOR_CODE" HeaderText="Codificación HTML en color">
<HeaderStyle HorizontalAlign="Centro" CssClass="list_1"></HeaderStyle>
<ItemStyle HorizontalAlign="Centro" CssClass="list_td"></ItemStyle>
</asp:ColumnaEncuadernada>
</Columnas>
</asp:cuadrícula de datos>
Después de explicar el html en la recepción, se convierte en:
<table cellpacing="0" reglas="all" border="1" id="myDataGrid" style="altura:100%;ancho:100%;border-collapse:collapse;">
<tr clase="lista_1">
<td class="disTd"> </td>
<td class="list_1" align="Center">Seleccionar<input type='checkbox' id='' onclick='doSelectAll();' title='Seleccionar todo'></td>
<td class="list_1" align="Center">Nombre del color</td>
<td class="list_1" align="Center">Codificación HTML en color</td>
</tr>
<tr clase="lista_lan">
<td class="disTd">16</td>
<td class="list_td" align="Center"> <input id="myDataGrid__ctl2_CheckBox1" type="checkbox" name="myDataGrid:_ctl2:CheckBox1" /></td>
<td class="list_td" align="Centro"><a href="InfoCOLOR.aspx?id=16&flag=0">213`</a></td>
<td class="list_td" align="Centro">123123</td>
</tr>
</tabla>
Podemos ver que el control DataGrid se ha convertido en una etiqueta de tabla, la identificación permanece sin cambios y el
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
original
Se convierte en
<input id="myDataGrid__ctl2_CheckBox1" type="checkbox" name="myDataGrid:_ctl2:CheckBox1" />
El "myDataGrid__ctl2_CheckBox1" aquí lo agrega automáticamente asp.net. Se genera combinando la identificación del DataGrid donde se encuentra, su propia identificación y la fila donde están vinculados los datos.
Los resultados anteriores se generaron en asp.net1.1. La identificación generada por 2.0 ha cambiado. La identificación no es myDataGrid__ctl2_CheckBox1, sino myDataGrid:_ctl2:CheckBox1, pero el atributo de nombre permanece sin cambios. Puede adivinar el propósito de Microsoft. Simplemente haga que la identificación y el nombre sean consistentes. De hecho, debería ser así. Quizás este sea uno de los aspectos irrazonables de dotnet1.1.
Un pequeño descubrimiento, espero que ayude a todos.