本文介绍了Asp.Net母版页元素ID不一致的体现,分享给大家,具体如下;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<%@ Page Language= "C#" MasterPageFile= "~/MasterPage.master" Theme= "style" AutoEventWireup= "true" CodeFile= "r_Balance.aspx.cs" Inherits= "Report_r_Balance" %> <asp:Content ID= "content" ContentPlaceHolderID= "MainContent" runat= "server" > <form id= "form1" runat= "server" > <div> <table cellspacing= "0" cellpadding= "0" border= "0" > <tbody> <tr> <td> <asp:Label ID= "lbPagename" runat= "server" SkinID= " " Text= "余额统计" ></asp:Label> </td> </tr> <tr> <td> <asp:ImageButton ID= "btnPrint" runat= "server" SkinID= "b_print" = "btnPrint_Click" /> <asp:ImageButton ID= "btnExport" runat= "server" SkinID= "b_export" = "btnExport_Click" /> </td> </tr> </tbody> </table> <!--结束功能条--> <table border= "1" style= "font: 宋体; font-size: 12px;" > <tr> <td style= "width: 256px; height: 15px;" > 卡号*</td> <td colspan= "1" style= "width: 233px; height: 15px" > <asp:TextBox ID= "txtc_printno" runat= "server" ></asp:TextBox></td> <td colspan= "1" style= "height: 24px; font-size: 14px; font-family: 宋体; width: 180px;" > <asp:ImageButton ID= "nSearch" runat= "server" AlternateText= "查询" ImageAlign= "Middle" ImageUrl= "~/images/go.gif" = "nSearch_Click" /> </td> </tr> </table> .... |
生成的HTML代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
< form name = "aspnetForm" method = "post" action = "r_Balance.aspx" id = "aspnetForm" > < table cellspacing = "0" cellpadding = "0" border = "0" > < tbody > < tr > < td > < span id = "ctl00_MainContent_lbPagename" style = "display:inline-block;color:#F2F3F9;border-style:None;font-family:宋体;font-size:13px;height:22px;" >余额统计</ span > </ td > </ tr > < tr > < td > < input type = "image" name = "ctl00$MainContent$btnPrint" id = "ctl00_MainContent_btnPrint" src = "../App_Themes/style/images/b_print.jpg" ="return np();" style = "border-style:Ridge;border-width:0px;" /> < input type = "image" name = "ctl00$MainContent$btnExport" id = "ctl00_MainContent_btnExport" src = "../App_Themes/style/images/b_export.jpg" style = "border-style:Ridge;border-width:0px;" /> </ td > </ tr > </ tbody > </ table > <!--结束功能条--> < table border = "1" style = "font: 宋体; font-size: 12px;" > < tr > < td style = "width: 256px; height: 15px;" > 卡号*</ td > < td colspan = "1" style = "width: 233px; height: 15px" > < input name = "ctl00$MainContent$txtc_printno" type = "text" id = "ctl00_MainContent_txtc_printno" style = "width:120px;height:16px;font-size:12px;font-family:宋体;color:DimGray;border-width:1px;border-style:Solid;border-color:#C4CAE6;background-color:White;" /></ td > < td colspan = "1" style = "height: 24px; font-size: 14px; font-family: 宋体; width: 180px;" > < input type = "image" name = "ctl00$MainContent$nSearch" id = "ctl00_MainContent_nSearch" src = "../images/go.gif" alt = "查询" ="return nselect();" style = "border-width:0px;" /> </ td > </ tr > </ table > |
注意:
1.源文件控件和元素ID和生成HTML文件的ID不一致。在生成的HTML中原ASP控件ID加了ctl00_MainContent_前缀,其他元素加了ctl00$MainContent$前缀。原变form1为aspnetForm这是因为aspx页面的控件是母板页的ContentPlaceHolder
控件下的子控件,所以控件ID会变
2.<system.Web><xhtmlConformance mode="Transitional|Legacy|Strict" />在其中选择 Transitional、Strict则产生自动前缀。ctl00.选择 Legacy|则产生自动前缀_ctl0.
3.后台Request.Form["txtc_name"]键值需要改变,必须变为Request.Form["ctl00$MainContent$txtc_name"]才能收到页面输入值
4.至于为什么,只能说这是.NET机制问题。。。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnsendblog.com/index.php/?p=104