Ich habe zufällig einen Unterschied zwischen 2.0 und 1.1 entdeckt und ihn aufgeschrieben, um alle daran zu erinnern.
Es geht darum, Code für die Startseite zu generieren. Wir wissen, dass asp.net-Serversteuerelemente letztendlich in die Front-End-Javascript-Skripte und HTML-Codes interpretiert werden. Beispielsweise wird das „Datagrid“-Steuerelement in die Bezeichnung „Tabelle“ und das „CheckBox“-Steuerelement interpretiert in „<input type='checkbox'... …“Label. Sowohl asp.net2.0 als auch asp.net1.1 verfügen über diesen Mechanismus, sodass wir diesen Mechanismus häufig verwenden können, um einige Javascript-Skripte an der Rezeption zu schreiben, um die nach diesen Interpretationen generierten HTML-Tags zu bedienen und einige Ereignisse aufzurufen. Ich weiß nicht, ob Sie diese Methode oft verwenden, aber ich verwende diese Methode oft und werde nie müde.
Durch einen zufälligen Vorfall habe ich einige JS-Skripte direkt unter 2.0 kopiert und sie nicht gefunden. Dann habe ich den von asp.net2 generierten Code nicht sorgfältig untersucht , das Geheimnis wurde gelüftet. Unter asp.net generiert die generierte Bezeichnung nach der Interpretation des Serversteuerelements in der Datagrid-Vorlagenspalte eine neue ID basierend auf der ID des ursprünglichen Serversteuerelements.
Beispielsweise wird (unter asp.net1.1) das CheckBox-Steuerelement in der Vorlagenspalte des DataGrid-Steuerelements verwendet:
<asp:datagrid id="myDataGrid" runat="server" AutoGenerateColumns="False" Height="100%" Breite="100%"
EnableViewState="false">
<AlternatingItemStyle CssClass="list_bai"></AlternatingItemStyle>
<ItemStyle CssClass="list_lan"></ItemStyle>
<HeaderStyle CssClass="list_1"></HeaderStyle>
<Spalten>
<asp:BoundColumn DataField="COLOR_ID" HeaderStyle-CssClass="disTd" ItemStyle-CssClass="disTd"></asp:BoundColumn>
<asp:TemplateColumn HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" HeaderText="Select<input type='checkbox' id='' onclick='doSelectAll();' title='Select All'>">
<HeaderStyle HorizontalAlign="Center" CssClass="list_1"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" CssClass="list_td"></ItemStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:HyperLinkColumn DataNavigateUrlField="COLOR_ID" DataNavigateUrlFormatString="InfoCOLOR.aspx?id={0}&flag=0"
DataTextField="COLOR_NAME" HeaderText="Farbname">
<HeaderStyle HorizontalAlign="Center" CssClass="list_1"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" CssClass="list_td"></ItemStyle>
</asp:HyperLinkColumn>
<asp:BoundColumn DataField="COLOR_CODE" HeaderText="Farbige HTML-Codierung">
<HeaderStyle HorizontalAlign="Center" CssClass="list_1"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" CssClass="list_td"></ItemStyle>
</asp:BoundColumn>
</Spalten>
</asp:datagrid>
Nach der Erklärung des HTML an der Rezeption lautet es:
<table cellpacing="0" Rules="all" border="1" id="myDataGrid" style="height:100%;width:100%;border-collapse:collapse;">
<tr class="list_1">
<td class="disTd"> </td>
<td class="list_1" align="Center">Select<input type='checkbox' id='' onclick='doSelectAll();' title='Select All'></td>
<td class="list_1" align="Center">Farbname</td>
<td class="list_1" align="Center">Farbige HTML-Kodierung</td>
</tr>
<tr class="list_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="Center"><a href="InfoCOLOR.aspx?id=16&flag=0">213`</a></td>
<td class="list_td" align="Center">123123</td>
</tr>
</table>
Wir können sehen, dass das DataGrid-Steuerelement zu einer Tabellenbezeichnung geworden ist, die ID unverändert bleibt und die ursprüngliche
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
Es wird zu
<input id="myDataGrid__ctl2_CheckBox1" type="checkbox" name="myDataGrid:_ctl2:CheckBox1" />
Das „myDataGrid__ctl2_CheckBox1“ wird hier automatisch von asp.net hinzugefügt. Es wird durch die Kombination der ID des DataGrids, in dem es sich befindet, seiner eigenen ID und der Zeile, in die die Daten gebunden sind, generiert.
Die oben genannten Ergebnisse wurden unter asp.net1.1 generiert. Die von 2.0 generierte ID ist nicht myDataGrid__ctl2_CheckBox1, sondern das Namensattribut bleibt unverändert. Machen Sie einfach die ID und den Namen konsistent. Vielleicht ist dies einer der unvernünftigen Aspekte von dotnet1.1.
Eine kleine Entdeckung, ich hoffe, sie hilft allen.