ASP.NET 2.0 创建母版页引来的麻烦
2008-02-04 21:32
811 查看
本文将为大家介绍一下 ASP.NET 2.0 在创建母版页时引来的麻烦,并分析了问题产生的实质,大家在实际操作中多多注意一下。
一、问题提出
由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页。但是出现了一个错误……在我的Blog中记录一下,方便大家参考。
二、 抽象模型
由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来。
原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下:
上述页面可以正常使用。后来使用模板页后,其代码如下:
当打开后按下按钮出现了“Microsoft JScript 运行时错误: 'document.getElementById(...)' 为空或不是对象”。这是什么原因呢?原来好好的,怎么套用个母版页就出现这个奇怪的问题呢?困扰了好久,和朋友讨论了一下,终于找到了答案……
三、分析本质
原来我们仔细看看其生成的HTML代码:
单一页面:
、Sóme… ★尋找承諾★ 馨萝-女人香 地苽`~筱潴潴 鈅懸/yl鈷鎮 凉面 SOSO用户 ∮籪Ж檒☆ -[尛 偉/] 泡沫之夏 神秘男liu氓 醉梦无痕& 維他命_ 游遍China ┡ЮTメ→强 晴天小虎 .oヽ掱背/╲, 杉 ò "劇終 天堂の劇終℡ `Ha.Andy、 平面§小精灵 拉登→心情 11111 泚莮孒の哊毐 Childe 〖缘ヤ分〗 0℃dě眼淚 Next街角 無倷 ┢┦apΡy 糖葫芦 最終/qz幻想 「皁巳痲ホヾ 逍遙¤逐靈ぶ 風~ ~ ~ ~ ~ 追梦熊;多笾 Яèd氣球oО ↙ 王 大 少 520056819 開始頽廢 SOSO用户 逍遥$轩& &( 尐儍苽-℡ 傑倫/aiq溡緔 三世轮回 [﹃] :- -↘無言 ゞ①苆ㄨ隨缘 莉攀ベ⒏⒏层 じoveChikage /li龍魂/!!! ★①错再错★ °╪ mFˋ酷 ゥ﹎劇. れ嘢蠻尐鱻れ ﹎劃上劇號﹎ ☆樂樂☆ 哭泣中的美 永远的… KiSs♂→YoU 失眠多夢。 hbb 都叫我唐伯虎 ﹎ヤ臣 _▂ ╰*ぶ戀ぶ*╮ 漩囀の風車 ˊ/-蕥芠_↘ 那兰逐幻 嫥屬"婞福. 鉳 鉳 ︶ㄣRa!n ゝ {-从啙以後 } 棒棒Táng Let’s Shine 天使∑掉下来 ●o笨疍z! ヤ古劍魂 石头的依偎 /sun♀靜似月 杏林一叶 寒尘/love 乖乖可人儿 Fox_K/ty 啭..ㄐ 冷泪︻┳═一 香雪菲儿 cΗao 洳惈愛请罙愛 ~&孤独的~* ﹖⒉∞7.榊話 九妹 华仔/ty SOSO用户 10ο﹪釹魜` 木時 浪子/aiq風雲 {愛這釹孓 亖X●mè 如水 |懒瀦|﹖ .o 莠· ωǒべ對ヾle 兄弟儀 56856641 〆﹎詼鈷娘ˇ 灬KiSs |°誹孆ザㄝ 阿杰 B○~B○/cy 哖_少オ輕狂 Orpheus 夢の寒/xy 蓝色忧郁 bιη 雄鷹╃]]騰飛 月升日落 决不言败 混世あ魔王 蔚蓝的す空氣 木木 比金猪大一岁 Ψ爍⒗仔ㄨ 云霄 ·丄錯床﹖ 祗愛妳①ɡè .﹎値鍀_﹖ 靚仔鎭英俊 穿牛仔的耶稣 栤蘜憮娯 ヅ惡魔ぺ嫙嵂 极限天子 祐珥環┊_◆ 「儛之綉﹣﹖ 活得更精彩 不睡觉的鱼 水稻开拓手 憂鬱曉巫婆 冰红茶 悠傻)-) oヤ偽妳變壞o DΟИG ╰☆鎏曐→雪 騰訊Qq ヴ无敌ㄜ英雄 沧桑男人 111111111111 遗じのve忘﹎ 贰え蕶ㄏ肆 ぷ葑鈊鎖愛ぷ /mg短开ぃ弦 /:P縴 掛 ★神蘅苡♂侠 ヤ朩 い耦 ′Mua.〢﹎榤 晒黑的云 丹 _◆≒;絆軹煙 阳光小子 真水&无香 ♂MeˇJ!é} L.way 教 父(毅) ⒌顔6銫d笹琾 ╳╳ .翫掵℡ TIANSHENGYID 孤雁双飞 錒傑- | .儍氣 ゛﹖ ☆ 大と小 __傷勒.o 冰果 问问 开心的男孩 冷光 ㄗ仟Běㄨ樱 .泪滑过ヤo ξ→稥 煙 す嗸⑩菾梺メ ℡┌⒈顆糖 ‘雙性灬戀 ▕&麥|兜' ヤ木目○公ヤ /yl水中月影 .兲藍sё 嗯,莪错ㄋ 昌覀仳盧普斯 bajinlong ☆開鈊 √ ╰☆丹ぺん 吃饱了撑着 习惯沉默 ′_摯情ヽ. Y丶Sky灬丨圣 рaИdа﹏o …藯灆の寂寞 yzjy 幽灵骑士
一、问题提出
由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页。但是出现了一个错误……在我的Blog中记录一下,方便大家参考。
二、 抽象模型
由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来。
原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下:
以下是引用片段: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>单一页面抽象模型-YJingLee</title> <script language="javascript" type="text/javascript"> // <!CDATA[ function insert() { document.getElementById("txt").value=document.getElementById("txt").value+"(__)"; return; } // ]]> </script> </head> <body> <form id="form1" runat="server"> <div> <textarea id="txt" runat="server" name="txt" rows="10" cols="50"></textarea> <asp:Button ID="btnInsert" runat="server" Text="服务器端插入(_)" OnClientClick="insert();"/> <input id="btnInsert2" name="insert" onclick="insert();" type="button" value="客户端插入(_)" runat="server"/></div> </form> </body> </html> |
上述页面可以正常使用。后来使用模板页后,其代码如下:
以下是引用片段: <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" Title="使用母版页面抽象模型-YJingLee" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <script language="javascript" type="text/javascript"> // <!CDATA[ function insert() { document.getElementById("txt").value=document.getElementById("txt").value+"(__)"; return; } // ]]> </script> <div> <textarea id="txt" runat="server" name="txt" rows="10" cols="50"></textarea> <asp:Button ID="btnInsert" runat="server" Text="服务器端插入(_)" OnClientClick="insert();"/> <input id="btnInsert2" name="insert" onclick="insert();" type="button" value="客户端插入(_)" runat="server"/></div> </asp:Content> |
三、分析本质
原来我们仔细看看其生成的HTML代码:
单一页面:
以下是引用片段: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title> 单一页面抽象模型-YJingLee</title> <script language="javascript" type="text/javascript"> // <!CDATA[ function insert() { document.getElementById("txt").value=document.getElementById("txt").value+"(__)"; return; } // ]]> </script> </head> <body> <form name="form1" method="post" action="Default.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTEzMjE5NDA0NWRkKlEH1jSXJkIbnUaP2d9Dra8LQEk=" /> </div> <div> <textarea name="txt" id="txt" rows="10" cols="50"></textarea> <input type="submit" name="btnInsert" value="服务器端插入(_)" onclick="insert();" id="btnInsert" /> <input name="btnInsert2" type="button" id="btnInsert2" onclick="insert();" value="客户端插入(_)" /></div> <div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBALVid/5DQKShrDCCQL5w9POBQL5w4vOBZPGqxUU/yvoKTqG8k+uG8YroGTv" /> </div></form> </body> </html> |
相关文章推荐
- ASP.NET 2.0 创建母版页引来的麻烦
- ASP.NET 2.0 创建母版页引来的麻烦
- ASP.NET 2.0 创建母版页引来的麻烦
- ASP.NET 2.0创建母版页引来的麻烦
- [ASP.NET 2.0]创建母版页引来的麻烦
- [ASP.NET 2.0]创建母版页引来的麻烦
- ASP.NET 2.0 创建母版页引来的麻烦
- ASP.NET 2.0创建母版页引来的麻烦
- ASP.NET 2.0 创建母版页导致js出现“ 'document.getElementById(...)' 为空或不是对象”错误
- ASP.NET 2.0 中的创建母版页
- ASP.NET 2.0 中的创建母版页
- ASP.NET 2.0 中的创建母版页
- 在ASP.NET 2.0中操作数据:创建母版页和站点导航
- 在ASP.NET 2.0中操作数据之三:创建母版页和站点导航
- ASP.NET 2.0 中的创建母版页
- ASP.NET 2.0 中的创建母版页
- ASP.NET 2.0 创建母版页导致js出现“ 'document.getElementById(...)' 为空或不是对象”错误《转》
- ASP.NET 2.0 创建母版页导致js出现“ 'document.getElementById(...)' 为空或不是对象”错误
- ASP.NET 2.0 AJAX 第二天:创建一个简单的ASP.NET 2.0 AJAX 应用程序
- Scott Mitchell 的ASP.NET 2.0数据教程之一: 创建一个数据访问层