|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
前几天同学问我学习方向的问题。有点想法,不知道对不对,怕误导同学,现在“开源一下”。注:括号内是我现在整理的时填加上的。asp.net|页面偶尔发明了一个2.0与1.1的一个分歧点,写出来给人人提个醒。
是关于前台页面熟成代码的。我们晓得,asp.net的服务器控件终极城市注释到前台的javascript脚步和html代码,好比“datagrid”控件会注释成“table”标签,“CheckBox”控件会注释成“<inputtype=checkbox……”标签。不管是asp.net2.0仍是asp.net1.1都是如许的机制,以是我们经常能够使用这个机制,在前台写一些javascript剧本来操纵这些注释今后天生的html标签,和挪用一些事务。不晓得人人是否是常常如许用,归正我常常利用这个办法,而且乐此不疲。
一个偶尔的事务发明了一个成绩,我间接拷贝了一些在1.1下的一些js剧本到2.0下的项目里利用,发明有毛病,剧本毛病,百思不得其解,然后细心研讨了asp.net2.0天生的前台代码,发明了奥密。在asp.net下,在datagrid模板列里的服务器控件注释后,天生的标签会依据本来服务器控件的id来天生新的id。
好比(asp.net1.1下),DataGrid控件的模板列里利用CheckBox控件:
<asp:datagridid="myDataGrid"runat="server"AutoGenerateColumns="False"Height="100%"Width="100%"
EnableViewState="false">
<AlternatingItemStyleCSSClass="list_bai"></AlternatingItemStyle>
<ItemStyleCssClass="list_lan"></ItemStyle>
<HeaderStyleCssClass="list_1"></HeaderStyle>
<Columns>
<asp:BoundColumnDataField="COLOR_ID"HeaderStyle-CssClass="disTd"ItemStyle-CssClass="disTd"></asp:BoundColumn>
<asp:TemplateColumnHeaderStyle-HorizontalAlign="Center"ItemStyle-HorizontalAlign="Center"HeaderText="选择<inputtype=checkboxid=>">
<HeaderStyleHorizontalAlign="Center"CssClass="list_1"></HeaderStyle>
<ItemStyleHorizontalAlign="Center"CssClass="list_td"></ItemStyle>
<ItemTemplate>
<asp:CheckBoxid="CheckBox1"runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:HyperLinkColumnDataNavigateUrlField="COLOR_ID"DataNavigateUrlFormatString="InfoCOLOR.aspx?id={0}&flag=0"
DataTextField="COLOR_NAME"HeaderText="色彩称号">
<HeaderStyleHorizontalAlign="Center"CssClass="list_1"></HeaderStyle>
<ItemStyleHorizontalAlign="Center"CssClass="list_td"></ItemStyle>
</asp:HyperLinkColumn>
<asp:BoundColumnDataField="COLOR_CODE"HeaderText="色彩HTML编码">
<HeaderStyleHorizontalAlign="Center"CssClass="list_1"></HeaderStyle>
<ItemStyleHorizontalAlign="Center"CssClass="list_td"></ItemStyle>
</asp:BoundColumn>
</Columns>
</asp:datagrid>
注释到前台的html后成了:
<tablecellspacing="0"rules="all"border="1"id="myDataGrid"style="height:100%;width:100%;border-collapse:collapse;">
<trclass="list_1">
<tdclass="disTd"></td>
<tdclass="list_1"align="Center">选择<inputtype=checkboxid=></td>
<tdclass="list_1"align="Center">色彩称号</td>
<tdclass="list_1"align="Center">色彩HTML编码</td>
</tr>
<trclass="list_lan">
<tdclass="disTd">16</td>
<tdclass="list_td"align="Center"><inputid="myDataGrid__ctl2_CheckBox1"type="checkbox"name="myDataGrid:_ctl2:CheckBox1"/></td>
<tdclass="list_td"align="Center"><ahref="InfoCOLOR.aspx?id=16&flag=0">213`</a></td>
<tdclass="list_td"align="Center">123123</td>
</tr>
</table>
我们能够看到DataGrid控件酿成了Table标签,id稳定,而本来的
<asp:CheckBoxid="CheckBox1"runat="server"></asp:CheckBox>
酿成了
<inputid="myDataGrid__ctl2_CheckBox1"type="checkbox"name="myDataGrid:_ctl2:CheckBox1"/>
这里的“myDataGrid__ctl2_CheckBox1”就是asp.net主动增加的,他是分离了他地点的DataGrid的id和本身的id和绑定命据后地点的行而天生的。
以上的了局是asp.net1.1下天生的,到了2.0天生的id产生了变更,id不是myDataGrid__ctl2_CheckBox1了,而是myDataGrid:_ctl2:CheckBox1,而name属性却稳定,能够料想微软如许的做的目标就是把id跟name分歧起来,实在原本就应当如许吗,大概这是dotnet1.1分歧理的中央之一吧。
小小的发明,但愿对人人有所匡助。
我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。 |
|