Asp.Net母版页元素ID不一致的体现

来自森大科技官方博客   http://www.cnsendblog.com/index.php/?p=104

<%@ 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 class="topTable" cellspacing="0"
cellpadding="0" border="0">

<tbody>

<tr class="title">

<td>

<asp:Label ID="lbPagename"
runat="server" SkinID="title" Text="余额统计"></asp:Label>

</td>

</tr>

<tr class="butt">

<td>

<asp:ImageButton ID="btnPrint"
runat="server" SkinID="b_print"
OnClick="btnPrint_Click" />

<asp:ImageButton ID="btnExport"
runat="server" SkinID="b_export"
OnClick="btnExport_Click" />

</td>

</tr>

</tbody>

</table>

<!--结束功能条-->

<table border="1" style="font: 宋体;
font-size: 12px;">

<tr>

<td align="center" 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;"

align="center">

<asp:ImageButton ID="nSearch"
runat="server" AlternateText="查询"
ImageAlign="Middle"

ImageUrl="~/images/go.gif" OnClick="nSearch_Click" />

</td>

</tr>

</table>

....

生成的HTML代码:

<form
name="aspnetForm" method="post"
action="r_Balance.aspx" id="aspnetForm">

<table
class="topTable" cellspacing="0" cellpadding="0"
border="0">

<tbody>

<tr class="title">

<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 class="butt">

<td>

<input type="image" name="ctl00$MainContent$btnPrint"
id="ctl00_MainContent_btnPrint"
src="../App_Themes/style/images/b_print.jpg" align="middle"
onclick="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"
align="middle" style="border-style:Ridge;border-width:0px;"
/>

</td>

</tr>

</tbody>

</table>

<!--结束功能条-->

<table border="1" style="font: 宋体;
font-size: 12px;">

<tr>

<td align="center" 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;"
/></td>

<td colspan="1" style="height: 24px; font-size: 14px;
font-family: 宋体; width: 180px;"

align="center">

<input type="image" name="ctl00$MainContent$nSearch"
id="ctl00_MainContent_nSearch" src="../images/go.gif"
alt="查询" align="middle"
onclick="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机制问题。。。

原文地址:https://www.cnblogs.com/cnsend/p/9955712.html

时间: 2024-10-21 22:06:56

Asp.Net母版页元素ID不一致的体现的相关文章

Asp.Net套用母版页后元素ID不一致之个人总结

Asp.Net套用母版页后元素ID不一致之个人总结来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=102在内容页里,在这个标签对里:<asp:Content ID="content" ContentPlaceHolderID="MainContent" runat="server"></asp: Content >一.form的ID变化.<form id="

Asp.Net 母版页

背景:回顾下以前用到过的asp.net控件 介绍: 使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局.单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为.然后可以创建包含要显示的内容的各个内容页.当用户请求内容页时,这些内容页与母版页合并以将母版页的布局与内容页的内容组合在一起输出. 母版页为具有扩展名 .master的asp.net文件. 原理: 母版页主要是由母版页本身(.master文件)和一个或多个内容页组成. 母版页包括一个或多个 <asp:Conte

ASP.NET母版页

ASP.NET母版页:主要是设置一致界面的页面,在固定的页中进行更新. 如图1-1所示 页头 页中(页内容) 页尾 图1-1  母版页 一般网页是固定页头和页尾,只更新页内容,来实现网页的跳转或内容的更新.其实控件iframe 和a  也可以实现这样的功能. 例如: <iframe  name="if"></iframe>//在iframe控件里面更新或跳转不同网页. <a target="if" href="ww.aspx&

Asp.Net母版页和内容页运行机制

Asp.Net母版页和内容页运行机制来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=96从上面的讲解中可以看出,单独的母版页是不能被用户所访问的.没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值.同样道理,单独的内容页没有母版页的支持,也不能够应用.这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能.为了便于读者理解,有必要讲解一下母版页与内容页的运行机制.母版页和内容页的运行过程可以概括为以下5个步骤

[转]结合HierarchyViewer和APK文件反编译获得APP元素id值

背景: 最近在使用Robotium进行Android自动化测试.遇到了一个问题:我需要获得一个View的id(int型数值).此前我在http://maider.blog.sohu.com/255448342.html和http://maider.blog.sohu.com/255485243.html两篇文章中讲述了如何打开手机上的View Server来使用HierarchyViewer.HierarchyViewer对查看UI组件固然有帮助,但要想获取一个元素的id还是不行的.请看下图:

点击鼠标获取元素ID

原文:点击鼠标获取元素ID public partial class Form1 : Form { public Form1() { InitializeComponent(); } private mshtml.HTMLDocument doc = null; private void Form1_Load_1(object sender, EventArgs e) { txtRecord.Items.Add("start..."); txtRecord.Items.Add(&quo

JavaScript通过元素id和name直接获取元素的方法

概览: 偶然的机会,我在JavaScript中直接用HTML元素的id属性来获取该元素,并设置该元素的其他属性值,竟然能够正确解析不报错!于是我去查阅相关资料,也有其他同行这么用. 虽然说这种用法不是标准用法,推荐使用 document.getElementById(id);document.getElementByName(name); ,但也是一种新发现,先记录下来,以备后用. 本文讲述了JavaScript通过元素id和name直接获取元素的方法,以及自己在实践过程中总结的注意事项. 具体

asp.net 母版页使用详解--转

http://www.cnblogs.com/_zjl/archive/2011/06/12/2078992.html 母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用.它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度.这里的母版页就像婚纱模板,而内容页面就像两位新人的照片.在VS2003中没有母版页,要实现这种设计重用的效果,我们只能

asp.net 母版页使用详解

母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用.它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度.这里的母版页就像婚纱模板,而内容页面就像两位新人的照片.在VS2003中没有母版页,要实现这种设计重用的效果,我们只能用“用户控件”来实现,但用户控件没有一种可视化的组合外观,使用起来不太方便. 母版页(扩展名是.master)它的使用跟