<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Graygift@ye &#187; web</title>
	<atom:link href="http://www.graygift.com/tag/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.graygift.com</link>
	<description>我是孤独的根号5      </description>
	<lastBuildDate>Sun, 08 Nov 2009 02:13:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Firebug使用说明</title>
		<link>http://www.graygift.com/web/use-firebug/</link>
		<comments>http://www.graygift.com/web/use-firebug/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 09:04:37 +0000</pubDate>
		<dc:creator>Graygift</dc:creator>
				<category><![CDATA[knowledge]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.graygift.com/software/firebug%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e/</guid>
		<description><![CDATA[什么是Firebug 要写出漂亮的HTML代码；要编写精致的CSS样式表展示每个页面模块；要调试javascript给页面增加一些更活泼的要素；要使用Ajax给用户带来更好的体验。一个优秀的WEB开发人员需要顾及... ]]></description>
			<content:encoded><![CDATA[<p><strong>什么是Firebug</strong></p>
<p>要写出漂亮的HTML代码；要编写精致的CSS样式表展示每个页面模块；要调试<a href="http://www.ooso.net/index.php/archives/category/javascript/">javascript</a>给页面增加一些更活泼的要素；要使用Ajax给用户带来更好的体验。一个优秀的WEB开发人员需要顾及更多层面，才能交出一份同样优秀的作业。为帮助广大正处于Web2.0洪流中的开发人员，在这里为大家介绍一款轻巧灵活的辅助开发工具。</p>
<p>Firebug是Firefox下的一款开发类插件，现属于<a href="http://www.ooso.net/index.php/archives/category/firefox/">Firefox</a>的 五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体，是开发JavaScript、CSS、HTML和 Ajax的得力助手。Firebug如同一把精巧的瑞士军刀，从各个不同的角度剖析Web页面内部的细节层面，给Web开发者带来很大的便利。这是一款让 人爱不释手的插件，如果你以前没有接触过它，也许在阅读本文之后，会有一试的欲望。</p>
<p><strong></strong></p>
<p><span id="more-1030"></span></p>
<p><strong>应用</strong></p>
<p>Firebug插件虽然功能强大，但是它已经和Firefox浏览器无缝地结合在一起，使用简单直观。如果你担心它会占用太多的系统资源，也可以方便地启用/关闭这个插件，甚至针对特定的站点开启这个插件。</p>
<p>在安装好插件之后，先用Firefox浏览器打开需要测试的页面，然后点击右下方的绿色按钮或使用快捷键F12唤出Firebug插件，它会将当前页面分成上下两个框架，如图1所示。</p>
<p><a class="highslide" rel="highslide" href="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HvOKQuQI/AAAAAAAAArA/j5hKeUoDc8g/Firebug1.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HvOKQuQI/AAAAAAAAArA/j5hKeUoDc8g/Firebug1.jpg?imgmax=640" alt="Firebug1.jpg" /></a></p>
<p>图1：Firebug插件展开图示<br />
从图1中看到，Firebug有6个主要的Tab按钮，下文将主要介绍介绍这几方面的功能。</p>
<p><strong>控制台</strong></p>
<p>控制台能够显示当前页面中的javascript错误以及警告，并提示出错的文件和行号，方便调试，这些错误提示比起浏览器本身提供的错误提示更加 详细且具有参考价值。而且在调试Ajax应用的时候也是特别有用，你能够在控制台里看到每一个XMLHttpRequests请求post出去的参数、 URL，http头以及回馈的内容，原本似乎在幕后黑匣子里运作的程序被清清楚楚地展示在你面前。</p>
<p>象C shell或Python shell一样，你还能在控制台中查看变量内容，直接运行javascript语句，就算是大段的javascript程序也能够正确运行并拿到运行期的信息。</p>
<p>控制台还有个重要的作用就是查看脚本的log, 从前你也许习惯了使用alert来打印变量，但是Firebug给我们带来了一个新朋友 —— console.log, 最简单的打印日志的语法是这样的：</p>
<p>CODE:</p>
<ol>
<li>console.log<strong>(</strong>“hello world”<strong>)</strong></li>
</ol>
<p>如果你有一堆参数需要组合在一起输出，可以写成这样：</p>
<p>CODE:</p>
<ol>
<li>console.log<strong>(</strong>2,4,6,8,”foo”,bar<strong>)</strong>.</li>
</ol>
<p>Firebug的日志输出有多种可选的格式以及语法，甚至可以定制彩色输出，比起单调的alert，显然更加方便，限于篇幅，这里不做详细说明，但是有志于提高debug效率的读者，可以到Firebug的官方站点（见附录）查看更详细的教程。</p>
<p><a class="highslide" rel="highslide" href="http://lh3.ggpht.com/_V2sZ_gK9Nko/Sj9Hy21I2_I/AAAAAAAAArc/wgKj6wNpnMM/Firebug2.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh3.ggpht.com/_V2sZ_gK9Nko/Sj9Hy21I2_I/AAAAAAAAArc/wgKj6wNpnMM/Firebug2.jpg?imgmax=640" alt="Firebug2.jpg" /></a></p>
<p>图2：在控制台里调试javascript</p>
<p><strong>查看和修改HTML</strong></p>
<p>第一次看到Firebug强大的HTML代码查看器，就觉得它与众不同，相比于Firefox自带的HTML查看器，它的功能强大了许多。 HTML</p>
<p>首先你看到的是已经经过格式化的HTML代码，它有清晰的层次，你能够方便地分辨出每一个标签之间的从属并行关系，标签的折叠功能能够帮助你集中精 力分析代码。源代码上方还标记出了DOM的层次，如图3所示，它清楚地列出了一个hml元素的parent、child以及root元素，配合 Firebug自带的CSS查看器使用，会给div+css页面分析编写带来很大的好处。你还可以在HTML查看器中直接修改HTML源代码，并在浏览器 中第一时间看到修改后的效果，光凭这一点就会让许多页面设计师死心塌地地成为Firebug的粉丝了。</p>
<p>有时候页面中的javascript会根据用户的动作如鼠标的onmouseover来动态改变一些HTML元素的样式表或背景色，HTML查看器会将页面上改变的内容也抓下来，并以黄色高亮标记，让网页的暗箱操作彻底成为历史。</p>
<p>利用Inspect检查功能，我们还可以用鼠标在页面中直接选择一些区块，查看相应的HTML源代码和CSS样式表，真正的做到所见即所得，如果你 使用了外部编辑器修改了当前网页，可以点击Firebug的reload图片重新载入网页，它会继续跟踪你之前用Inspect选中的区块，方便调试。</p>
<p><a class="highslide" rel="highslide" href="http://lh5.ggpht.com/_V2sZ_gK9Nko/Sj9HvbSEgKI/AAAAAAAAArE/mtbUqHC7m00/Firebug3.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh5.ggpht.com/_V2sZ_gK9Nko/Sj9HvbSEgKI/AAAAAAAAArE/mtbUqHC7m00/Firebug3.jpg?imgmax=640" alt="Firebug3.jpg" /></a></p>
<p>图3:：HTML查看器</p>
<p><strong>CSS</strong><strong>调试</strong></p>
<p>Firebug的CSS调试器是专为网页设计师们量身定做的。</p>
<p>如今的网页设计言必称div+css，如果你是用table套出来的HTML页面，就得按这规矩重构一遍，否则显得你不够时髦！用div做出来的页面的确能精简HTML代码，HTML标签减肥的结果就是CSS样式表的编写成了页面制作的重头戏。Firebug的CSS查看器不仅自下向上列出每一个 CSS样式表的从属继承关系，还列出了每一个样式在哪个样式文件中定义。你可以在这个查看器中直接添加、修改、删除一些CSS样式表属性，并在当前页面中 直接看到修改后的结果。</p>
<p>一个典型的应用就是页面中的一个区块位置显得有些不太恰当，它需要挪动几个象素。这时候用CSS调试工具可以轻易编辑它的位置——你可以根据需要随意挪动象素。<br />
如图4中正在修改一个区块的背景色。</p>
<p>提示：如果你正在学习CSS样式表的应用，但是总记不住常用的样式表有哪些值，可以尝试在CSS调试器中选中一个样式表属性，然后用上下方向键来改变它的值，它会把可能的值一个个遍历给你看。</p>
<p><a class="highslide" rel="highslide" href="http://lh5.ggpht.com/_V2sZ_gK9Nko/Sj9HwPo9k7I/AAAAAAAAArI/qvquq3F3S7A/Firebug4.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh5.ggpht.com/_V2sZ_gK9Nko/Sj9HwPo9k7I/AAAAAAAAArI/qvquq3F3S7A/Firebug4.jpg?imgmax=640" alt="Firebug4.jpg" /></a></p>
<p>图4: CSS查看器，能够直接修改样式表</p>
<p><strong>可视化的CSS尺标</strong></p>
<p>我们可以利用Firebug来查看页面中某一区块的CSS样式表，如果进一步展开右侧Layout tab的话，它会以标尺的形式将当前区块占用的面积清楚地标识出来，精确到象素，更让人惊讶的是，你能够在这个可视化的界面中直接修改各象素的值，页面上区块的位置就会随改动而变化。在页面中某些元素出现错位或者面积超出预料值时，该功能能够提供有效的帮助，你可以籍此分析offset、margin、 padding、size之间的关系，从而找出解决问题的办法。</p>
<p><a class="highslide" rel="highslide" href="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HyXLXiwI/AAAAAAAAArY/zSfPos8IP4M/Firebug5.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HyXLXiwI/AAAAAAAAArY/zSfPos8IP4M/Firebug5.jpg?imgmax=640" alt="Firebug5.jpg" /></a></p>
<p>图5：Firebug中的CSS标尺</p>
<p><strong>网络状况监视器</strong></p>
<p>也许有一天，你的老板或者客户找到你，抱怨你制作的网页速度奇慢，你该如何应对？你或许会说这可能是网络问题，或者是电脑配置问题，或者是程序太慢，或者直说是他们的人品问题？不管怎么说，最后你可能被要求去解决这个有多种可能的问题。</p>
<p>网络状况监视器能帮你解决这个棘手问题。Firebug的网络监视器同样是功能强大的，它能将页面中的CSS、javascript以及网页中引用 的图片载入所消耗的时间以矩状图呈现出来，也许在这里你能一把揪出拖慢了你的网页的元凶，进而对网页进行调优，最后老板满意客户欢喜，你的饭碗也因此而牢固。</p>
<p>网络监视器还有一些其它细节功能，比如预览图片，查看每一个外部文件甚至是xmlHttpRequests请求的http头等等。</p>
<p><a class="highslide" rel="highslide" href="http://lh3.ggpht.com/_V2sZ_gK9Nko/Sj9HxLeLfkI/AAAAAAAAArQ/pt82SA6bLDk/Firebug6.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh3.ggpht.com/_V2sZ_gK9Nko/Sj9HxLeLfkI/AAAAAAAAArQ/pt82SA6bLDk/Firebug6.jpg?imgmax=640" alt="Firebug6.jpg" /></a></p>
<p>图6：网络状况监视器</p>
<p><strong>Javascript</strong><strong>调试器</strong></p>
<p>这是一个很不错的javascript脚本调试器，占用空间不大，但是单步调试、设置断点、变量查看窗口一个不少。正所谓麻雀虽小，五脏俱全。</p>
<p>如果你有一个网站已经建成，然而它的javascript有性能上的问题或者不是太完美，可以通过面板上的Profile来统计每段脚本运行的时间，查看到底是哪些语句执行时间过长，一步步排除问题。</p>
<p><a class="highslide" rel="highslide" href="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HxTC3KlI/AAAAAAAAArU/etinDdWZ78E/Firebug7.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HxTC3KlI/AAAAAAAAArU/etinDdWZ78E/Firebug7.jpg?imgmax=640" alt="Firebug7.jpg" /></a></p>
<p>图7：javascript调试器</p>
<p><strong>DOM</strong><strong>查看器</strong></p>
<p>DOM(Document Object Model)里头包含了大量的Object以及函数、事件，在从前，你要想从中查到需要的内容，绝非易事，这好比你去了一个巨大的图书馆，想要找到几本名字不太确切的小书，众多的选择会让你无所适从。而使用Firebug的DOM查看器却能方便地浏览DOM的内部结构，帮助你快速定位DOM对象。双击一个 DOM对象，就能够编辑它的变量或值，编辑的同时，你可能会发现它还有自动完成功能，当你输入document.get之后，按下tab键就能补齐为 document.getElementById，非常方便。如果你认为补齐得不够理想，按下shift+tab又会恢复原状。用了Firebug的 DOM查看器，你的javascript从此找到了驱使的对象，Web开发也许就成了一件乐事。</p>
<p><a class="highslide" rel="highslide" href="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HwjvSekI/AAAAAAAAArM/9jzbOayigbE/Firebug8.jpg?imgmax=800"><img class="pie-img" style="margin:10px 10px 10px 10px;" src="http://lh4.ggpht.com/_V2sZ_gK9Nko/Sj9HwjvSekI/AAAAAAAAArM/9jzbOayigbE/Firebug8.jpg?imgmax=640" alt="Firebug8.jpg" /></a></p>
<p>图8: Dom查看器</p>
<p><strong>小结</strong></p>
<p>Firebug插件提供了一整套web开发所必需的工具。从HTML的编写，到CSS样式表的美化调优，以及用javascript脚本开发，亦或 是Ajax应用，Firebug插件都会成为你的得力助手。所谓工欲善其事，必先利其器。在Web2.0的时代，言必称Ajax，动辄就是用户体验提升， 如果把Firebug工具用好，必能让你如虎添翼，将HTML、CSS、javascript整理得服服帖帖，从此成为web开发中的专家级人物。</p>
<p><strong>附</strong></p>
<p>Firebug的中文含义是萤火虫，作者是Joe Hewitt，官方网页  <a href="http://getfirebug.com">http://www.getfirebug.com</a><br />
Firefox亦即火狐浏览器，是近年来撼动IE浏览器市场占有率的一支强大力量，要不是它的出现，我想有生之年说不定也看不到IE 7的发布了，官方网页 <a href="http://www.mozillaonline.com/">http://www.firefox.com</a></p>
<p>有所改编 原作者 <a href="http://www.ooso.net/archives/author/volcano/">Volcano</a> 转载自<a href="http://www.ooso.net/archives/294">http://www.ooso.net/archives/294</a></p>
<ul class="related_post"><li><a href="http://www.graygift.com/wordpress/all-in-one-adsense-and-ypn/" title="All in One Adsense and YPN">All in One Adsense and YPN</a></li><li><a href="http://www.graygift.com/web/css-with-the-reasons-for-em-disposable-px/" title="CSS用em弃px的原因">CSS用em弃px的原因</a></li><li><a href="http://www.graygift.com/it/firefox-support-for-drag-and-drop-functionality-to-allow-plug-easy-dragtogo/" title="让火狐支持拖放功能的插件-Easy DragToGo">让火狐支持拖放功能的插件-Easy DragToGo</a></li><li><a href="http://www.graygift.com/game/sim-city-4-plug-fault-solution/" title="模拟城市4 插件故障解决方法">模拟城市4 插件故障解决方法</a></li><li><a href="http://www.graygift.com/game/simcity-4-plugins/" title="模拟城市4的插件">模拟城市4的插件</a></li><li><a href="http://www.graygift.com/web/flash1/" title="我的期末Flash作业！">我的期末Flash作业！</a></li><li><a href="http://www.graygift.com/web/aspnetcode/" title="ASP.NET 程序中常用代码">ASP.NET 程序中常用代码</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.graygift.com/web/use-firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的期末Flash作业！</title>
		<link>http://www.graygift.com/web/flash1/</link>
		<comments>http://www.graygift.com/web/flash1/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 12:59:53 +0000</pubDate>
		<dc:creator>Graygift</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.graygift.com/?p=22</guid>
		<description><![CDATA[我的期末作业，还行，是一个生日快乐的M... ]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-19" href="http://www.graygift.com/web/flash1/attachment/mv_e59cbae699af-1/">mv</a></p>
<p>我的选修课期末作业，得了不错的分，现在发出来分享，不要笑我喔！！关于生日快乐的MV</p>
<ul class="related_post"><li><a href="http://www.graygift.com/web/use-firebug/" title="Firebug使用说明">Firebug使用说明</a></li><li><a href="http://www.graygift.com/web/aspnetcode/" title="ASP.NET 程序中常用代码">ASP.NET 程序中常用代码</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.graygift.com/web/flash1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET 程序中常用代码</title>
		<link>http://www.graygift.com/web/aspnetcode/</link>
		<comments>http://www.graygift.com/web/aspnetcode/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 12:39:32 +0000</pubDate>
		<dc:creator>Graygift</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[asp.net]]></category>

		<guid isPermaLink="false">http://www.graygift.com/?p=16</guid>
		<description><![CDATA[1. 打开新的窗口并传送参数
2.为按钮添加对话框
3.删除表格选定记录
4.删除表格记录警告
5.点击表格行链接另一页
6.表格超连接列传递参数
8.关于日期格式
9.获取错误信息并到指定页面
10... ]]></description>
			<content:encoded><![CDATA[<p>1. 打开新的窗口并传送参数：　　</p>
<div>传送参数：  </div>
<div><span style="font-family: 'Courier New'; line-height: 18px; white-space: pre;">接收参数：</span></div>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code1'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p161"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p16code1"><pre class="language" style="font-family:monospace;">string a = Request.QueryString(&quot;id&quot;);
string b = Request.QueryString(&quot;id1&quot;);</pre></td></tr></table></div>

<p>2.为按钮添加对话框</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code2'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p162"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p16code2"><pre class="language" style="font-family:monospace;">Button1.Attributes.Add(&quot;onclick&quot;,&quot;return confirm('确认?')&quot;);
button.attributes.add(&quot;onclick&quot;,&quot;if(confirm('are you sure...?')){return true;}else{return false;}&quot;)</pre></td></tr></table></div>

<p><span id="more-16"></span>3.删除表格选定记录</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code3'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p163"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p16code3"><pre class="language" style="font-family:monospace;">int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = &quot;DELETE from Employee where emp_id = &quot; + intEmpID.ToString()</pre></td></tr></table></div>

<p>4.删除表格记录警告</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code4'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p164"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code" id="p16code4"><pre class="language" style="font-family:monospace;">private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
　switch(e.Item.ItemType)
　{
　　case ListItemType.Item :
　　case ListItemType.AlternatingItem :
　　case ListItemType.EditItem:
　　　TableCell myTableCell;
　　　myTableCell = e.Item.Cells[14];
　　　LinkButton myDeleteButton ;
　　　myDeleteButton = (LinkButton)myTableCell.Controls[0];
　　　myDeleteButton.Attributes.Add(&quot;onclick&quot;,&quot;return confirm('您是否确定要删除这条信息');&quot;);
　　　break;
　　default:
　　　break;
　}
}</pre></td></tr></table></div>

<p>5.点击表格行链接另一页</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code5'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p165"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code" id="p16code5"><pre class="language" style="font-family:monospace;">private void grdCustomer_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
　//点击表格打开
　if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
　　e.Item.Attributes.Add(&quot;onclick&quot;,&quot;window.open('Default.aspx?id=&quot; + e.Item.Cells[0].Text + &quot;');&quot;);
}
　　双击表格连接到另一页
　　在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
{
　string OrderItemID =e.item.cells[1].Text;
　...
　e.item.Attributes.Add(&quot;ondblclick&quot;, &quot;location.href='../ShippedGrid.aspx?id=&quot; + OrderItemID + &quot;'&quot;);
}
　　双击表格打开新一页
if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
{
　string OrderItemID =e.item.cells[1].Text;
　...
　e.item.Attributes.Add(&quot;ondblclick&quot;, &quot;open('../ShippedGrid.aspx?id=&quot; + OrderItemID + &quot;')&quot;);
}</pre></td></tr></table></div>

<p>6.表格超连接列传递参数</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code6'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p166"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p16code6"><pre class="language" style="font-family:monospace;">&amp;lt;asp:HyperLinkColumn Target=&quot;_blank&quot; headertext=&quot;ID号&quot; DataTextField=&quot;id&quot; 
NavigateUrl=&quot;aaa.aspx?id='　
&amp;lt;%# DataBinder.Eval(Container.DataItem, &quot;数据字段1&quot;)%&amp;gt;' &amp;amp; name='
&amp;lt;%# DataBinder.Eval(Container.DataItem, &quot;数据字段2&quot;)%&amp;gt;' /&amp;gt;</pre></td></tr></table></div>

<p>7.表格点击改变颜色</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code7'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p167"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p16code7"><pre class="language" style="font-family:monospace;">if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(&quot;onclick&quot;,&quot;this.style.backgroundColor='#99cc00';
this.style.color='buttontext';this.style.cursor='default';&quot;);
}
　　写在DataGrid的_ItemDataBound里
if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(&quot;onmouseover&quot;,&quot;this.style.backgroundColor='#99cc00';
this.style.color='buttontext';this.style.cursor='default';&quot;)
e.Item.Attributes.Add(&quot;onmouseout&quot;,&quot;this.style.backgroundColor='';this.style.color='';&quot;);
}</pre></td></tr></table></div>

<p>8.关于日期格式<br />
日期格式设定</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code8'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p168"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p16code8"><pre class="language" style="font-family:monospace;">DataFormatString=&quot;{0:yyyy-MM-dd}&quot; 我觉得应该在itembound事件中
e.items.cell[&quot;你的列&quot;].text=DateTime.Parse(e.items.cell[&quot;你的列&quot;].text.ToString(&quot;yyyy-MM-dd&quot;)) </pre></td></tr></table></div>

<p>9.获取错误信息并到指定页面<br />
不要使用Response.Redirect,而应该使用Server.Transfer</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code9'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p169"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p16code9"><pre class="language" style="font-family:monospace;">　　e.g
// in global.asax protected void Application_Error(Object sender, EventArgs e) 
{ if (Server.GetLastError() is HttpUnhandledException) Server.Transfer(&quot;MyErrorPage.aspx&quot;);
//其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)
} 　&lt;span style=&quot;font-family: Georgia; line-height: 19px; white-space: normal;&quot;&gt;　&lt;/span&gt;</pre></td></tr></table></div>

<p>Redirect会导致post－back的产生从而丢失了错误信息，所以页面导向应该直接在服务器端执行，<br />
这样就可以在错误处理页面得到出错信息并进行相应的处理<br />
10.清空Cookie</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code10'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1610"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p16code10"><pre class="language" style="font-family:monospace;">Cookie.Expires=[DateTime]; Response.Cookies(&quot;UserName&quot;).Expires = 0 　</pre></td></tr></table></div>

<p>11.自定义异常处理<br />
自定义异常处理类</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code11'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1611"><td class="line_numbers"><pre>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
</pre></td><td class="code" id="p16code11"><pre class="language" style="font-family:monospace;">using System;
using System.Diagnostics;
namespace MyAppException
{
/// &amp;lt;summary&amp;gt;
/// 从系统异常类ApplicationException继承的应用程序异常处理类。
/// 自动将异常内容记录到Windows NT/2000的应用程序日志
/// &amp;lt;/summary&amp;gt;
public class AppException : System.ApplicationException
{
public AppException()
{
if (ApplicationConfiguration.EventLogEnabled) LogEvent(&quot;出现一个未知错误。&quot;);
}
public AppException(string message)
{
LogEvent(message);
}
public AppException(string message, Exception innerException)
{
LogEvent(message);
if (innerException != null)
{
LogEvent(innerException.Message);
}
}
}
}</pre></td></tr></table></div>

<p>日志记录类</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p16code12'); return false;">View Code</a> LANGUAGE</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1612"><td class="line_numbers"><pre>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
41
42
43
44
45
46
47
48
49
50
51
52
</pre></td><td class="code" id="p16code12"><pre class="language" style="font-family:monospace;">using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading;
namespace MyEventLog
{
/// &amp;lt;summary&amp;gt;
/// 事件日志记录类，提供事件日志记录支持
/// &amp;lt;remarks&amp;gt;
/// 定义了4个日志记录方法 (error, warning, info, trace)
/// &amp;lt;/remarks&amp;gt;
/// &amp;lt;/summary&amp;gt;
public class ApplicationLog
{
/// &amp;lt;summary&amp;gt;
/// 将错误信息记录到Win2000/NT事件日志中
/// &amp;lt;param name=&quot;message&quot;&amp;gt;需要记录的文本信息&amp;lt;/param&amp;gt;
/// &amp;lt;/summary&amp;gt;
public static void WriteError(String message)
{
WriteLog(TraceLevel.Error, message);
}
/// &amp;lt;summary&amp;gt;
/// 将警告信息记录到Win2000/NT事件日志中
/// &amp;lt;param name=&quot;message&quot;&amp;gt;需要记录的文本信息&amp;lt;/param&amp;gt;
/// &amp;lt;/summary&amp;gt;
public static void WriteWarning(String message)
{
WriteLog(TraceLevel.Warning, message);
}
/// &amp;lt;summary&amp;gt;
/// 将提示信息记录到Win2000/NT事件日志中
/// &amp;lt;param name=&quot;message&quot;&amp;gt;需要记录的文本信息&amp;lt;/param&amp;gt;
/// &amp;lt;/summary&amp;gt;
public static void WriteInfo(String message)
{
WriteLog(TraceLevel.Info, message);
}
/// &amp;lt;summary&amp;gt;
/// 将跟踪信息记录到Win2000/NT事件日志中
/// &amp;lt;param name=&quot;message&quot;&amp;gt;需要记录的文本信息&amp;lt;/param&amp;gt;
/// &amp;lt;/summary&amp;gt;
public static void WriteTrace(String message)
{
WriteLog(TraceLevel.Verbose, message);
}
/// &amp;lt;summary&amp;gt;
/// 格式化记录到事件日志的文本信息格式
/// &amp;lt;param name=&quot;ex&quot;&amp;gt;需要格式化的异常对象&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&quot;catchInfo&quot;&amp;gt;异常信息标题字符串.&amp;lt;/param&amp;gt;</pre></td></tr></table></div>

<ul class="related_post"><li><a href="http://www.graygift.com/web/use-firebug/" title="Firebug使用说明">Firebug使用说明</a></li><li><a href="http://www.graygift.com/web/flash1/" title="我的期末Flash作业！">我的期末Flash作业！</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.graygift.com/web/aspnetcode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

