本文介绍了Asp.Net母版页元素ID不一致的体现,分享给大家,具体如下;

<%@ 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代码:

  <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机制问题。。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

收藏 打印