<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[迅速查询]]></title>
  <subtitle type="html"><![CDATA[建站_域名空间_数据库_服务器_.NET_IT技术]]></subtitle>
  <id>http://www.xscx.com/</id>
  <link rel="alternate" type="text/html" href="http://www.xscx.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.xscx.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2011-10-31T13:16:38+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[Asp.Net无刷新分页（ jquery.pagination.js） ]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=8" label="ASP.NET" /> 
	  <updated>2011-10-31T13:16:38+08:00</updated>
	  <published>2011-10-31T13:16:38+08:00</published>
		  <summary type="html"><![CDATA[采用Jquery无刷新分页插件jquery.pagination.js 实现无刷新分页效果<br/><br/><span id="down_8e0p1a2e3t"></span><script language="javascript" type="text/javascript">check('Action.asp?action=Antidown&id=19&downurl=download%2Easp%3Fid%3D19&main=%E7%82%B9%E5%87%BB%E4%B8%8B%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6','down_8e0p1a2e3t','down_8e0p1a2e3t');</script><br/><br/><strong>1.插件参数列表</strong><br/><br/><img src="http://www.xscx.com/download.asp?id=20" border="0" alt=""/><br/><br/><strong>2.页面内容：</strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code3196);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.xscx.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code3196>&lt;%@ Page Language=&#34;C#&#34; AutoEventWireup=&#34;true&#34; CodeFile=&#34;Default.aspx.cs&#34; Inherits=&#34;_Default&#34; %&gt;<br/><br/>&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;&gt;<br/>&lt;html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;&gt;<br/>&lt;head id=&#34;Head1&#34; runat=&#34;server&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Porschev----无刷新翻页&lt;/title&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;script src=&#34;Script/jquery-1.4.1.min.js&#34; src=&#34;Script/jquery-1.4.1.min.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;script src=&#34;Script/jquery.pagination.js&#34; mce_src=&#34;Script/jquery.pagination.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;script src=&#34;Script/tablecloth.js&#34; mce_src=&#34;Script/tablecloth.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;link href=&#34;Style/tablecloth.css&#34; mce_href=&#34;Style/tablecloth.css&#34; rel=&#34;stylesheet&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=&#34;text/css&#34; /&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;link href=&#34;Style/pagination.css&#34; mce_href=&#34;Style/pagination.css&#34; rel=&#34;stylesheet&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=&#34;text/css&#34; /&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type=&#34;text/javascript&#34;&gt;<br/>var pageIndex =0;&nbsp;&nbsp;&nbsp;&nbsp; //页面索引初始值<br/>var pageSize =10;&nbsp;&nbsp;&nbsp;&nbsp; //每页显示条数初始化，修改显示条数，修改这里即可&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>$(function() {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/> InitTable(0);&nbsp;&nbsp; <br/>&nbsp;&nbsp;//Load事件，初始化表格数据，页面索引为0（第一页） <br/> //分页，PageCount是总条目数，这是必选参数，其它参数都是可选&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;$(&#34;#Pagination&#34;).pagination(&lt;%=pageCount %&gt;, {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;callback: PageCallback,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; prev_text: &#39;上一页&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //上一页按钮里text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; next_text: &#39;下一页&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //下一页按钮里text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; items_per_page: pageSize,&nbsp;&nbsp;//显示条数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; num_display_entries: 6,&nbsp;&nbsp;&nbsp;&nbsp;//连续分页主体部分分页条目数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; current_page: pageIndex,&nbsp;&nbsp; //当前页索引&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; num_edge_entries: 2//两侧首尾分页条目数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; });&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//翻页调用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; function PageCallback(index, jq) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; InitTable(index);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//请求数据&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; function InitTable(pageIndex) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; $.ajax({&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; type: &#34;POST&#34;,<br/>&nbsp;&nbsp; dataType: &#34;text&#34;,<br/>&nbsp;&nbsp; url: &#39;Handler/PagerHandler.ashx&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//提交到一般处理程序请求数据&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; data: &#34;pageIndex=&#34;+ (pageIndex +1) +&#34;&amp;pageSize=&#34;+ pageSize,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//提交两个参数：pageIndex(页面索引)，pageSize(显示条数)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; success: function(data) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; $(&#34;#Result tr:gt(0)&#34;).remove();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//移除Id为Result的表格里的行，从第二行开始（这里根据页面布局不同页变）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; $(&#34;#Result&#34;).append(data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将返回的数据追加到表格&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; });&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; });<br/>&lt;/script&gt;<br/><br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div align=&#34;center&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Posrchev----无刷新分页&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#34;container&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table id=&#34;Result&#34; cellspacing=&#34;0&#34; cellpadding=&#34;0&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编号<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/th&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名称<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/th&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#34;Pagination&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;</div></div><br/><br/><strong>3.页面.cs文件内容：</strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code80361);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.xscx.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code80361>using System;<br/>using System.Collections.Generic;<br/>using System.Linq;<br/>using System.Web;<br/>using System.Web.UI;<br/>using System.Web.UI.WebControls;<br/>public partial class _Default : System.Web.UI.Page<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public string pageCount = string.Empty; //总条目数&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected void Page_Load(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!IsPostBack)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pageCount = new PagerTestBLL.PersonManager().GetPersonCount().ToString();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</div></div><br/><br/><strong>4.Handler中的内容：</strong><br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code75424);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.xscx.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code75424>&lt;%@ WebHandler Language=&#34;C#&#34; Class=&#34;PagerHandler&#34; %&gt;<br/>using System;<br/>using System.Web;<br/>using System.Collections.Generic;<br/>using System.Text;<br/>public class PagerHandler : IHttpHandler {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>public void ProcessRequest (HttpContext context) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>context.Response.ContentType = &#34;text/plain&#34;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>string str = string.Empty;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//具体的页面数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>int pageIndex;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>int.TryParse(context.Request[&#34;pageIndex&#34;], out pageIndex);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//页面显示条数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>int size = Convert.ToInt32(context.Request[&#34;pageSize&#34;]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>if (pageIndex == 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>{<br/>pageIndex = 1;<br/>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>int count;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>List&lt;PagerTestModels.Person&gt; list = new PagerTestBLL.PersonManager().GetAllPerson(size, pageIndex, &#34;&#34;, out count); <br/>StringBuilder sb = new StringBuilder();<br/>foreach (PagerTestModels.Person p in list)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>sb.Append(&#34;&lt;tr&gt;&lt;td&gt;&#34;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>sb.Append(p.Id.ToString());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>sb.Append(&#34;&lt;/td&gt;&lt;td&gt;&#34;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>sb.Append(p.Name);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>sb.Append(&#34;&lt;/td&gt;&lt;/tr&gt;&#34;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>str = sb.ToString();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>context.Response.Write(str);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>}&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/>public bool IsReusable {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>get {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; return false;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/> }&nbsp;&nbsp;&nbsp;&nbsp;<br/>}<br/><br/>}</div></div><br/><br/>5.实现效果图：<br/><br/><img src="http://www.xscx.com/download.asp?id=21" border="0" alt=""/><br/><br/>下载地址：<span id="down_tvnewod1x6"></span><script language="javascript" type="text/javascript">check('Action.asp?action=Antidown&id=22&downurl=download%2Easp%3Fid%3D22&main=%E7%82%B9%E5%87%BB%E4%B8%8B%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6','down_tvnewod1x6','down_tvnewod1x6');</script><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/ASP.NET/861.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=861</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Repeater导出为excel格式 ]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=8" label="ASP.NET" /> 
	  <updated>2011-09-06T10:12:43+08:00</updated>
	  <published>2011-09-06T10:12:43+08:00</published>
		  <summary type="html"><![CDATA[System.IO.StringWriter sw = new System.IO.StringWriter();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.Repeater1.RenderControl(hw);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Clear();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.ContentType = &#34;application/vnd.ms-excel&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Charset = &#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Page.EnableViewState = false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string time = DateTime.Now.ToString(&#34;yyyyMMddhhmmss&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.AppendHeader(&#34;Content-Disposition&#34;, &#34;attachment;filename=&#34; + time + &#34;.xls&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(sw.ToString());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.End();<br/><br/><br/>说明：当字符型的数字串导出到excel的时候，经常自动变为科学记数法表示，解决的方法，绑定到Repeater1的时候如此：<br/>&lt;td style=&#34;vnd.ms-excel.numberformat:@&#34;&gt;&lt;%# DataBinder.Eval(Container.DataItem, &#34;shenfenzheng&#34;) %&gt;&lt;/td&gt;<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/ASP.NET/860.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=860</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JS 刷新本页、父页、框架 ]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=6" label="JavaScript" /> 
	  <updated>2011-07-18T15:54:30+08:00</updated>
	  <published>2011-07-18T15:54:30+08:00</published>
		  <summary type="html"><![CDATA[window.location.reload(); //本页<br/>window.opener.location.reload(); //父页 <br/><br/>&lt;script language=&#39;javascript&#39;&gt;window.parent.location.reload();&lt;/script&gt; //刷新框架]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/JavaScript/859.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=859</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[SQLServer查询最近一天，三天，一周，一月，一季度方法 ]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=19" label="DataBase" /> 
	  <updated>2011-06-17T15:54:08+08:00</updated>
	  <published>2011-06-17T15:54:08+08:00</published>
		  <summary type="html"><![CDATA[一天 sel&#101;ct * from T_news wh&#101;re datediff(day,addtime,getdate())=0 <br/><br/>三天 sel&#101;ct * from T_news wh&#101;re datediff(day,addtime,getdate())&lt;= 2 and datediff(day,addtime,getdate())&gt;= 0 <br/><br/>一周 sel&#101;ct * from T_news Wh&#101;re (DATEPART(wk, addtime) = DATEPART(wk, GETDATE())) AND (DATEPART(yy, addtime) = DATEPART(yy, GETDATE())) <br/><br/>注意：此时不能用 datediff 差值为7,因为，datediff只表示间隔数 <br/><br/>一月&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct * from T_news Wh&#101;re (DATEPART(yy, addtime) = DATEPART(yy, GETDATE())) AND (DATEPART(mm, addtime) = DATEPART(mm, GETDATE())) <br/><br/>一季度 sel&#101;ct * from T_news wh&#101;re DATEPART(qq, addtime) = DATEPART(qq, GETDATE()) and DATEPART(yy, addtime) = DATEPART(yy, GETDATE())<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/DataBase/858.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=858</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP.NET 剖析三层架构]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=8" label="ASP.NET" /> 
	  <updated>2011-06-16T15:08:18+08:00</updated>
	  <published>2011-06-16T15:08:18+08:00</published>
		  <summary type="html"><![CDATA[本文不是从理论的角度来探讨三层架构，而是用一个示例来介绍如何建设一个三层架构的项目，并说明项目中各个文件所处的层次与作用。写本文的目的，不是为了说明自己的这个方法有多对，别人的肯定不对，而是希望给那些初学三层架构却不知从何入手的朋友提供一点帮助。因为网上的文章，大多是注重理论的介绍，而忽略了具体的实践应用，或者有示例但讲得不透彻。导致看了之后，理论上又学习了一遍，但还是不知道代码怎么写。所以想从这个方面入手写一下，让从来没做过三层架构的初学者也能照猫画虎，写出代码来。文章表述的是笔者个人对三层架构的认识，肯定有许多不足的地方，欢迎大家指正，小弟也会根据反馈来修改这篇文章。文中的代码是伪代码，仅用来阐明思路。<br/>&nbsp;&nbsp;&nbsp;&nbsp;正文：<br/>&nbsp;&nbsp;&nbsp;&nbsp;一提三层架构，大家都知道是表现层（UI），业务逻辑层（BLL）和数据访问层（DAL），而且每层如何细分也都有很多的方法。但具体代码怎么写，到底那些文件算在哪一层，却是模模糊糊的。下面用一个简单的例子来带领大家实战三层架构的项目，这个例子只有一个功能，就是用户的简单管理。<br/>&nbsp;&nbsp;&nbsp;&nbsp;首先建立一个空白解决方案，添加如下项目及文件<br/><br/>1、添加ASP.NET Web Application项目，命名为UI，新建Web Form类型文件User.aspx（含User.aspx.cs）<br/><br/>2、添加ClassLibrary项目，命名为BLL，新建Class类型文件UserBLL.cs<br/><br/>3、添加ClassLibrary项目，命名为DAL，新建Class类型文件UserDAL.cs。添加SQLHelper引用。（这个是微软的数据访问类，也可以不用，直接编写所有的数据访问代码。我一般用自己写的数据访问类DataAccessHelper ）。<br/><br/>4、添加ClassLibrary项目，命名为Model，新建Class类型文件UserModel.cs<br/><br/>5、添加ClassLibrary项目，命名为IDAL，新建Interface类型文件IUserDAL.cs<br/><br/>6、添加ClassLibrary项目，命名为ClassFactory<br/><br/>相信大家已经看出来了，这个和Petshop的示例没什么区别，而且更简单，因为在下也是通过Petshop学习三层架构的。但一些朋友对于这几个项目所处的层次，以及它们之间的关系，可能比较模糊，这里逐个说明一下：<br/><br/>1、User.aspx和User.aspx.cs<br/><br/>这两个文件（以及文件所属的项目，下面也是如此，不再重复强调了）都属于表现层部分。User.aspx比较好理解，因为它就是显示页面了。User.aspx.cs有些人觉得不应该算，而是要划到业务逻辑层中去。如果不做分层的话，那么让User.aspx.cs来处理业务逻辑，甚至操作数据库都没什么问题，但是做分层的话，这样就不应该了。在分层结构中，User.aspx.cs仅应该处理与显示有关的内容，其它部分都不应该涉及。<br/><br/>举例：我们实现用列表方式显示用户的功能，那么提取信息的工作是由BLL来做的，UI（本例中是User.aspx.cs）调用BLL得到UserInfo后，通过代码绑定到User.aspx的数据控件上，就实现了列表的显示。在此过程中User.aspx.cs对UI没有起到什么作用，仅是用来传递数据，而且因为实际编码中大部分情况都是如此的实现，所以使有些人觉得User.aspx.cs不应该算UI，而应该并入BLL负责逻辑处理。继续往下看，这时提出了一个新需求，要求在每个用户的前面加一个图标，生动地表现出用户的性别，而且不满18岁的用儿童图标表示。这个需求的实现，就轮到User.aspx.cs来做了，这种情况下User.aspx.cs才算有了真正的用途。<br/><br/>2、NewBLL.cs<br/><br/>添加如下方法：<br/><br/>public IList&lt;UserInfo&gt; GetUsers()：返回所有的用户信息列表<br/><br/>public UserInfo GetUser(int UserId)：返回指定用户的详细信息<br/><br/>public bool AddUser(UserInfo User)：新增用户信息<br/><br/>public bool ChangeUser(UserInfo User)：更新用户信息<br/><br/>public void RemoveUser(int UserId)：移除用户信息<br/><br/>此文件就属于业务逻辑层了，专门用来处理与业务逻辑有关的操作。可能有很多人觉得这一层唯一的用途，就是把表现层传过来的数据转发给数据层。这种情况确实很多，但这只能说明项目比较简单，或者项目本身与业务的关系结合的不紧密（比如当前比较流行的MIS），所以造成业务层无事可做，只起到了一个转发的作用。但这不代表业务层可有可无，随着项目的增大，或者业务关系比较多，业务层就会体现出它的作用来了。<br/><br/>此处最可能造成错误的，就是把数据操作代码划在了业务逻辑层，而把数据库作为了数据访问层。<br/><br/>举例：有些朋友感觉BLL层意义不大，只是将DAL的数据提上来就转发给了UI，而未作任何处理。看一下这个例子<br/><br/>BLL层<br/><br/>Sel&#101;ctUser（UserInfo userInfo）根据传入的username或email得到用户详细信息。<br/><br/>IsExist（UserInfo userInfo）判断指定的username或email是否存在。<br/><br/>然后DAL也相应提供方法共BLL调用<br/><br/>Sel&#101;ctUser（UserInfo userInfo）<br/><br/>IsExist（UserInfo userInfo）<br/><br/>这样BLL确实只起到了一个传递的作用。<br/><br/>但如果这样做：<br/><br/>BLL.IsExist（Userinfo userinfo）<br/><br/>{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UerInfo user = DAL.Sel&#101;ctUser（User）；<br/><br/><br/>return (userInfo.Id != null);<br/><br/>}<br/><br/>那么DAL就无需实现IsExist()方法了，BLL中也就有了逻辑处理的代码。<br/><br/>3、UserModel.cs<br/><br/>实体类，这个东西，大家可能觉得不好分层。包括我以前在内，是这样理解的：UIßàModelßàBLLßàModelßàDAL，如此则认为Model在各层之间起到了一个数据传输的桥梁作用。不过在这里，我们不是把事情想简单，而是想复杂了。<br/><br/>Model是什么？它什么也不是！它在三层架构中是可有可无的。它其实就是面向对象编程中最基本的东西：类。一个桌子是一个类，一条新闻也是一个类，int、string、doublie等也是类，它仅仅是一个类而已。<br/><br/>这样，Model在三层架构中的位置，和int，string等变量的地位就一样了，没有其它的目的，仅用于数据的存储而已，只不过它存储的是复杂的数据。所以如果你的项目中对象都非常简单，那么不用Model而直接传递多个参数也能做成三层架构。<br/><br/>那为什么还要有Model呢，它的好处是什么呢。下面是思考一个问题时想到的，插在这里：&nbsp;&nbsp; <br/><br/>Model在各层参数传递时到底能起到做大的作用？<br/><br/>在各层间传递参数时，可以这样：<br/><br/>AddUser（userId，userName，userPassword，…，）<br/><br/>也可以这样：<br/><br/>AddUser（userInfo）<br/><br/>这两种方法那个好呢。一目了然，肯定是第二种要好很多。<br/><br/>什么时候用普通变量类型（int,string,guid,double）在各层之间传递参数，什么使用Model传递？下面几个方法：<br/><br/>Sel&#101;ctUser（int UserId）<br/><br/>Sel&#101;ctUserByName（string username）<br/><br/>Sel&#101;ctUserByName（string username，string password）<br/><br/>Sel&#101;ctUserByEmail（string email）<br/><br/>Sel&#101;ctUserByEmail（string email，string password）<br/><br/>可以概括为：<br/><br/>Sel&#101;ctUser（userId）<br/><br/>Sel&#101;ctUser（user）<br/><br/>这里用user这个Model对象囊括了username，password，email这三个参数的四种组合模式。UserId其实也可以合并到user中，但项目中其它BLL都实现了带有id参数的接口，所以这里也保留这一项。<br/><br/>传入了userInfo，那如何处理呢，这个就需要按照先后的顺序了，有具体代码决定。<br/><br/>这里按这个顺序处理<br/><br/>首先看是否同时具有username和password，然后看是否同时具有email和password，然后看是否有username，然后看是否有email。依次处理。<br/><br/>这样，如果以后增加一个新内容，会员卡（number），则无需更改接口，只要在DAL的代码中增加对number的支持就行，然后前台增加会员卡一项内容的表现与处理即可。<br/><br/>4、UserDAL.cs<br/><br/>public IList&lt;UserInfo&gt; Sel&#101;ctUsers()：返回所有的用户信息列表<br/><br/>public UserInfo Sel&#101;ctUser(int UserId)：返回指定用户的相信信息<br/><br/>public bool Ins&#101;rtUser(UserInfo User)：新增用户信息<br/><br/>public bool Up&#100;ateUser(UserInfo User)：更新用户信息<br/><br/>public void Del&#101;teUser(int UserId)：移除用户信息<br/><br/>很多人最闹不清的就是数据访问层，到底那部分才算数据访问层呢？有些认为数据库就是数据访问层，这是对定义没有搞清楚，DAL是数据访问层而不是数据存储层，因此数据库不可能是这一层的。也有的把SQLHelper（或其同类作用的组件）作为数据访问层，它又是一个可有可无的东西，SQLHelper的作用是减少重复性编码，提高编码效率，因此如果我习惯在乎效率或使用一个非数据库的数据源时，可以丢弃SQLHelper，一个可以随意弃置的部分，又怎么能成为三层架构中的一层呢。<br/><br/>可以这样定义：与数据源操作有关的代码，就应该放在数据访问层中，属于数据访问层<br/><br/>5、IUserDAL<br/><br/>数据访问层接口，这又是一个可有可无的东西，因为Petshop中带了它和ClassFactory类工厂，所以有些项目不论需不需要支持多数据源，都把这两个东西做了进来，有的甚至不建ClassFactory而只建了IDAL，然后“IUserDAL iUserDal = new UserDAL();”，不知意义何在。这就完全是画虎不成反类犬了。<br/><br/>许多人在这里有一个误解，那就是以为存在这样的关系：BLLßàIDALßàDAL，认为IDAL起到了BLL和DAL之间的桥梁作用，BLL是通过IDAL来调用DAL的。但实际是即使你如此编码：“IUserDAL iUserDal = ClassFacotry.Cr&#101;ateUserDAL()；”，那么在执行“iUserDal.Sel&#101;ctUsers()”时，其实还是执行的UserDAL实例，而不是IUserDAL实例，所以IDAL在三层中的位置是与DAL平级的关系。<br/><br/>通过上面的介绍，基本上将三层架构的层次结构说明了。其实，本人有一个判断三层架构是否标准的方法，那就是将三层中的任意一层完全替换，都不会对其它两层造成影响，这样的构造基本就符合三层标准了（虽然实现起来比较难^_^）。例如如果将项目从B/S改为C/S（或相反），那么除了UI以外，BLL与DAL都不用改动；或者将SQLServer改为Oracle，只需替换SQLServerDAL到OracleDAL，无需其它操作等等。本来想在文中加入一些具体的代码的，但感觉不是很必要，如果大家觉得需要的话，我再补充吧。<br/><br/>总结：不要因为某个层对你来说没用，或者实现起来特别简单，就认为它没有必要，或者摒弃它，或者挪作它用。只要进行了分层，不管是几层，每一层都要有明确的目的和功能实现，而不要被实际过程所左右，造成同一类文件位于不同层的情况发生。也不要出现同一层实现了不同的功能的情况发生。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/ASP.NET/857.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=857</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP.NET基本控件FileUpload上传控件]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=8" label="ASP.NET" /> 
	  <updated>2011-05-10T08:37:59+08:00</updated>
	  <published>2011-05-10T08:37:59+08:00</published>
		  <summary type="html"><![CDATA[前台代码：<br/><br/>&lt;asp:FileUpload ID=&#34;FileUpload&#34; runat=&#34;server&#34; /&gt;&nbsp;&nbsp;<br/><br/>&lt;asp:Button ID=&#34;BtnUp&#34; runat=&#34;server&#34; onclick=&#34;BtnUp_Click&#34; Text=&#34;上 传&#34; /&gt;&nbsp;&nbsp;<br/><br/>&lt;asp:Label ID=&#34;LabMsg&#34; runat=&#34;server&#34;&gt;&lt;/asp:Label&gt; <br/><br/><br/>后台代码：<br/><br/>using System;&nbsp;&nbsp;<br/><br/>using System.Collections.Generic;&nbsp;&nbsp;<br/><br/>using System.Web;&nbsp;&nbsp;<br/><br/>using System.Web.UI;&nbsp;&nbsp;<br/><br/>using System.Web.UI.WebControls;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp; <br/><br/>namespace docnet&nbsp;&nbsp;<br/><br/>{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public partial class up : System.Web.UI.Page&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected void Page_Load(object sender, EventArgs e)&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp; <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp; <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected void BtnUp_Click(object sender, EventArgs e)&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (FileUpload.HasFile)&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string savePath = Server.MapPath(&#34;~/upload/&#34;);//指定上传文件在服务器上的保存路径&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//检查服务器上是否存在这个物理路径，如果不存在则创建&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!System.IO.Directory.Exists(savePath))&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.IO.Directory.Cr&#101;ateDirectory(savePath);&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;savePath = savePath + &#34;\\&#34; + FileUpload.FileName;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileUpload.SaveAs(savePath);&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LabMsg.Text = string.Format(&#34;&lt;a href=&#39;upload/{0}&#39;&gt;upload/{0}&lt;/a&gt;&#34;, FileUpload.FileName);&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LabMsg.Text = &#34;你还没有选择上传文件!&#34;;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/><br/>} <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/ASP.NET/856.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=856</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[三种SQL分页法效率分析]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=19" label="DataBase" /> 
	  <updated>2011-05-09T08:56:43+08:00</updated>
	  <published>2011-05-09T08:56:43+08:00</published>
		  <summary type="html"><![CDATA[1.分页方案一：(利用Not In和Sel&#101;ct TOP分页)<br/> <br/>Sel&#101;ct TOP 页大小 * FROM 表名 Wh&#101;re(id NOT IN<br/>　(Sel&#101;ct TOP 页大小*页数id FROM 表名 o&#114;DERBY id))<br/>o&#114;DERBY id<br/> <br/>例：<br/>Sel&#101;ct TOP10 * FROM TestTable Wh&#101;re (ID NOT IN<br/>&nbsp;&nbsp;(Sel&#101;ct TOP20 id FROM TestTable o&#114;DER BY id))<br/>o&#114;DERBY ID<br/> <br/>分页方案一：(利用Not In和Sel&#101;ct TOP分页) 效率第二，需要拼接SQL语句<br/> <br/>2.分页方案二：(利用ID大于多少和Sel&#101;ct TOP分页)<br/>Sel&#101;ct TOP 页大小 * FROM TestTable Wh&#101;re(ID&gt;<br/>&nbsp;&nbsp;(Sel&#101;ct MAX(id) FROM (Sel&#101;ct TOP 页大小*页数 id FROM 表名 o&#114;DER BY id) AST))<br/>o&#114;DERBY ID<br/> <br/>例：<br/>Sel&#101;ct TOP10 * FROM TestTable Wh&#101;re ( ID&gt;<br/>&nbsp;&nbsp;(Sel&#101;ct MAX(id) FROM ( Sel&#101;ct TOP20 id FROM TestTable o&#114;DER BY id) AST))<br/>o&#114;DERBY ID<br/> <br/>分页方案二：(利用ID大于多少和Sel&#101;ct TOP分页)效率最高，需要拼接SQL语句<br/> <br/>3.分页方案三：(利用SQL的游标存储过程分页)<br/>Cr&#101;ate proc page<br/>@pagenum int<br/>as<br/>SET NOCOUNT ON<br/>declare @sql nvarchar(500) --声明动态sql执行语句<br/>declare @pagecount int --当前页数<br/><br/>--取得当前数据库的记录总数<br/>declare @row_num int<br/>begin<br/>sel&#101;ct @row_num=count(*) from cat_list<br/><br/>--创建临时表，作为数据过滤<br/>cr&#101;ate table #change (T_id int)<br/><br/>--判断当前页数<br/>if @row_num&gt;6 --大于页面显示记录数，则分页<br/>begin<br/>set @row_num=@pagenum*6<br/><br/>if @row_num=6<br/>sel&#101;ct top 6 * from cat_list<br/>else<br/>begin<br/>set @row_num=(@pagenum-1)*6<br/>set @pagecount=@row_num<br/>set @sql=N&#39;ins&#101;rt #change (T_id) sel&#101;ct top &#39;+cast(@pagecount as char(100))+&#39; T_id from cat_list wh&#101;re T_id not in (sel&#101;ct T_id from #change)&#39;<br/>exec sp_executesql @sql<br/>sel&#101;ct top 6 * from cat_list wh&#101;re T_id not in (sel&#101;ct T_id from #change)<br/>end<br/>end<br/>else --只现实全部的数据<br/>sel&#101;ct * from cat_list<br/>end<br/>GO<br/><br/><br/>客户端这样调用：<br/>&lt;!--#include file=&#34;conn.asp&#34;--&gt;<br/>&lt;!--#include file=&#34;adovbs.inc&#34;--&gt;<br/>&lt;% dim T_com<br/>dim T_rs&#39;declare datamanage recordset<br/><br/><br/>dim parameters<br/>set T_com=server.cr&#101;ateobject(&#34;adodb.command&#34;)<br/>T_com.ActiveConnection=conn<br/>T_com.CommandText=&#34;page&#34;<br/>T_com.CommandType=adCmdStoredProc<br/>&#39;T_com.Prepared=true<br/>set parameters=T_com.Cr&#101;ateParameter(&#34;@pagenum&#34;,adInteger,adParamInput)<br/>T_com.Parameters.Append parameters<br/>dim page<br/>page=request.QueryString(&#34;page&#34;)<br/>if page=&#34;&#34; then<br/>page=1<br/>end if<br/>T_com(&#34;@pagenum&#34;)=page<br/>set T_rs=T_com.Execute<br/><br/>do while not T_rs.eof<br/>response.Write T_rs(&#34;c_name&#34;)<br/>T_rs.movenext<br/>loop<br/>%&gt;<br/>&lt;a href=&#34;a.asp?page=&lt;%=page+1%&gt;&#34;&gt;ddddd&lt;/a&gt;&nbsp;&nbsp;<br/>分页方案三：(利用SQL的游标存储过程分页) 效率最差，但是最为通用]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/DataBase/855.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=855</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[DataList如何实现横向排列数据交替行变色! ]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=8" label="ASP.NET" /> 
	  <updated>2011-05-05T09:07:06+08:00</updated>
	  <published>2011-05-05T09:07:06+08:00</published>
		  <summary type="html"><![CDATA[&lt;asp:datalist id=&#34;DataList1&#34; style=&#34;Z-INDEX: 101; LEFT: 111px; POSITION: absolute; TOP: 54px&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;runat=&#34;server&#34; RepeatDirection=&#34;Horizontal&#34; RepeatColumns=&#34;3&#34; Width=&#34;234px&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ItemTemplate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Label ID=&#34;lblmsg&#34; Runat=server Text=&#39;&lt;%# DataBinder.Eval(Container.DataItem,&#34;id&#34;).ToString() %&gt;&#39;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:Label&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ItemTemplate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Alt&#101;rnatingItemTemplate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Label ID=&#34;Label2&#34; Runat=server Text=&#39;&lt;%# DataBinder.Eval(Container.DataItem,&#34;id&#34;).ToString() %&gt;&#39;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:Label&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Alt&#101;rnatingItemTemplate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:datalist&gt;]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/ASP.NET/854.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=854</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JS搜索代码]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=6" label="JavaScript" /> 
	  <updated>2011-05-05T08:30:36+08:00</updated>
	  <published>2011-05-05T08:30:36+08:00</published>
		  <summary type="html"><![CDATA[function check()<br/>{<br/>var txtseach=document.getElementById(&#34;txtseach&#34;);<br/>var big=window.document.getElementById(&#34;bigclass&#34;).value;<br/><br/>var name=encodeURI(txtseach.value);<br/>if(txtseach.value.length&lt;=0)<br/>{<br/>alert(&#39;请输入关键字搜索&#39;);<br/>}<br/>else if(txtseach.value==&#39;输入关键字……&#39;)<br/>{<br/>alert(&#39;请输入关键字搜索&#39;);<br/>}<br/>else{<br/>if(big==1)<br/>{<br/>location.href=&#34;product.aspx?name=&#34;+name+&#34;&#34;;<br/>}<br/>else if(big==2)<br/>{<br/>location.href=&#34;news.aspx?name=&#34;+name+&#34;&#34;;<br/>}<br/><br/><br/>else{<br/>alert(&#39;请选择类别！&#39;);<br/>}<br/>}}<br/><br/>function clearDefaultText (el,message)<br/>{<br/>var obj = el;<br/>if(typeof(el) == &#34;string&#34;)<br/>obj = document.getElementById(id);<br/>if(obj.value == message)<br/>{<br/>obj.value = &#34;&#34;;<br/>}<br/>obj.onblur = function()<br/>{<br/>if(obj.value == &#34;&#34;)<br/>{<br/>&nbsp;&nbsp; obj.value = message;<br/>}<br/>}<br/>}<br/><br/>&lt;div class=&#34;search&#34;&gt;&lt;input name=&#34;&#34; type=&#34;button&#34; value=&#34; &#34; class=&#34;searbu&#34; onclick=&#34;return check();&#34;/&gt; &lt;input id=&#34;txtseach&#34; name=&#34;&#34; type=&#34;text&#34; class=&#34;searin&#34; value=&#34;输入关键字……&#34; onclick=&#34;clearDefaultText(this,&#39;输入关键字……&#39;)&#34;/&gt;&lt;sel&#101;ct class=&#34;searse&#34;&nbsp;&nbsp;id=&#34;bigclass&#34;&gt;&lt;option value=&#34;0&#34;&gt;选择类别&lt;/option&gt;&lt;option value=&#34;1&#34;&gt;产品&lt;/option&gt;&lt;option value=&#34;2&#34;&gt;新闻&lt;/option&gt;&lt;/sel&#101;ct&gt;&lt;span&gt;站内搜索：&lt;/span&gt;&lt;/div&gt;]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/JavaScript/853.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=853</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[常用的语句C# ]]></title>
	  <author>
		 <name>flyso</name>
		 <uri>http://www.xscx.com/</uri>
		 <email>flyso@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.xscx.com/default.asp?cateID=8" label="ASP.NET" /> 
	  <updated>2011-05-04T08:49:12+08:00</updated>
	  <published>2011-05-04T08:49:12+08:00</published>
		  <summary type="html"><![CDATA[1. 打开新的窗口并传送参数： <br/><br/>　　传送参数：<br/><br/><br/>response.write(&#34;＜scrīpt＞window.open(’*.aspx?id=&#34;+this.Dro&#112;DownList1.Sel&#101;ctIndex+&#34;&amp;id1=&#34;+...+&#34;’)＜/scrīpt＞&#34;)<br/><br/><br/>　　接收参数：<br/><br/><br/>string a = Request.QueryString(&#34;id&#34;);<br/>string b = Request.QueryString(&#34;id1&#34;);<br/><br/><br/>　　2.为按钮添加对话框<br/><br/><br/>Button1.Attributes.Add(&#34;onclick&#34;,&#34;return confirm(’确认?’)&#34;);<br/>button.attributes.add(&#34;onclick&#34;,&#34;if(confirm(’are you sure...?’)){return true;}else{return false;}&#34;)<br/><br/><br/>　　3.删除表格选定记录<br/><br/><br/>int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];<br/>string del&#101;teCmd = &#34;Del&#101;te from Employee wh&#101;re emp_id = &#34; + intEmpID.ToString()<br/><br/><br/>　　4.删除表格记录警告<br/><br/><br/>private void DataGrid_ItemCr&#101;ated(Object sender,DataGridItemEventArgs e)<br/>{<br/>　switch(e.Item.ItemType)<br/>　{<br/>　　case ListItemType.Item :<br/>　　case ListItemType.Alt&#101;rnatingItem :<br/>　　case ListItemType.EditItem:<br/>　　　TableCell myTableCell;<br/>　　　myTableCell = e.Item.Cells[14];<br/>　　　LinkButton myDel&#101;teButton ;<br/>　　　myDel&#101;teButton = (LinkButton)myTableCell.Controls[0];<br/>　　　myDel&#101;teButton.Attributes.Add(&#34;onclick&#34;,&#34;return confirm(’您是否确定要删除这条信息’);&#34;);<br/>　　　break;<br/>　　default:<br/>　　　break;<br/>　}<br/><br/>}<br/><br/><br/>　　5.点击表格行链接另一页<br/><br/><br/>private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)<br/>{<br/>　//点击表格打开<br/>　if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.Alt&#101;rnatingItem)<br/>　　e.Item.Attributes.Add(&#34;onclick&#34;,&#34;window.open(’Default.aspx?id=&#34; + e.Item.Cells[0].Text + &#34;’);&#34;);<br/>}<br/><br/><br/>　　双击表格连接到另一页<br/><br/>　　在itemDataBind事件中<br/><br/><br/>if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.Alt&#101;rnatingItem)<br/>{<br/>　string ōrderItemID =e.item.cells[1].Text;<br/>　...<br/>　e.item.Attributes.Add(&#34;ondblclick&#34;, &#34;location.href=’../ShippedGrid.aspx?id=&#34; + o&#114;derItemID + &#34;’&#34;);<br/>}<br/><br/><br/>　　双击表格打开新一页<br/><br/><br/>if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.Alt&#101;rnatingItem)<br/>{<br/>　string ōrderItemID =e.item.cells[1].Text;<br/>　...<br/>　e.item.Attributes.Add(&#34;ondblclick&#34;, &#34;open(’../ShippedGrid.aspx?id=&#34; + o&#114;derItemID + &#34;’)&#34;);<br/>}<br/><br/><br/>　　★特别注意：【?id=】 处不能为 【?id =】<br/><br/>　　6.表格超连接列传递参数<br/><br/><br/><br/>＜asp:HyperLinkColumn Target=&#34;_blank&#34; headertext=&#34;ID号&#34; DataTextField=&#34;id&#34; NavigateUrl=&#34;aaa.aspx?id=’<br/>　＜%# DataBinder.Eval(Container.DataItem, &#34;数据字段1&#34;)%＞’ &amp; name=’＜%# DataBinder.Eval(Container.DataItem, &#34;数据字段2&#34;)%＞’ /＞<br/><br/><br/>　　7.表格点击改变颜色<br/><br/><br/>if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.Alt&#101;rnatingItem)<br/>{<br/>　e.Item.Attributes.Add(&#34;onclick&#34;,&#34;this.style.backgroundColor=’#99cc00’;<br/>　　　 this.style.color=’buttontext’;this.style.cursor=’default’;&#34;);<br/>}<br/><br/><br/>　　写在DataGrid的_ItemDataBound里<br/><br/><br/>if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.Alt&#101;rnatingItem)<br/>{<br/>e.Item.Attributes.Add(&#34;onmouseover&#34;,&#34;this.style.backgroundColor=’#99cc00’;<br/>　　　this.style.color=’buttontext’;this.style.cursor=’default’;&#34;);<br/>e.Item.Attributes.Add(&#34;onmouseout&#34;,&#34;this.style.backgroundColor=’’;this.style.color=’’;&#34;);<br/>}<br/><br/><br/><br/>　　8.关于日期格式<br/><br/>　　日期格式设定<br/><br/><br/>DataFormatString=&#34;{0:yyyy-MM-dd}&#34;<br/><br/><br/>　　我觉得应该在itembound事件中<br/><br/><br/>e.items.cell[&#34;你的列&#34;].text=DateTime.Parse(e.items.cell[&#34;你的列&#34;].text.ToString(&#34;yyyy-MM-dd&#34;))<br/><br/><br/>　　9.获取错误信息并到指定页面<br/><br/>　　不要使用Response.Redirect,而应该使用Server.Transfer<br/><br/>　　e.g<br/><br/><br/>// in global.asax<br/>protected void Application_Error(Object sender, EventArgs e) {<br/>if (Server.GetLastError() is HttpUnhandledException)<br/>Server.Transfer(&#34;MyErrorPage.aspx&#34;);<br/><br/>//其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)<br/>}<br/><br/><br/>　　Redirect会导致post－back的产生从而丢失了错误信息，所以页面导向应该直接在服务器端执行，这样就可以在错误处理页面得到出错信息并进行相应的处理 <br/><br/>　　10.清空Cookie<br/><br/><br/>Cookie.Expires=[DateTime];<br/>Response.Cookies(&#34;UserName&#34;).Expires = 0<br/><br/><br/>　　11.自定义异常处理<br/><br/><br/>//自定义异常处理类 <br/>using System;<br/>using System.Diagnostics;<br/><br/>namespace MyAppException<br/>{<br/>　/// ＜summary＞<br/>　/// 从系统异常类ApplicationException继承的应用程序异常处理类。<br/>　/// 自动将异常内容记录到Windows NT/2000的应用程序日志<br/>　/// ＜/summary＞<br/>　public class AppException:System.ApplicationException<br/>　{<br/>　　public AppException()<br/>　　{<br/>　　　if (ApplicationConfiguration.EventLogEnabled)LogEvent(&#34;出现一个未知错误。&#34;);<br/>　　}<br/><br/>　public AppException(string message)<br/>　{<br/>　　LogEvent(message);<br/>　}<br/><br/>　public AppException(string message,Exception innerException)<br/>　{<br/>　　LogEvent(message);<br/>　　if (innerException != null)<br/>　　{<br/>　　　LogEvent(innerException.Message);<br/>　　}<br/>　}<br/><br/>　//日志记录类<br/>　using System;<br/>　using System.Configuration;<br/>　using System.Diagnostics;<br/>　using System.IO;<br/>　using System.Text;<br/>　using System.Threading;<br/><br/>　namespace MyEventLog<br/>　{<br/>　　/// ＜summary＞<br/>　　/// 事件日志记录类，提供事件日志记录支持 <br/>　　/// ＜remarks＞<br/>　　/// 定义了4个日志记录方法 (error, warning, info, trace) <br/>　　/// ＜/remarks＞<br/>　　/// ＜/summary＞<br/>　　public class ApplicationLog<br/>　　{<br/>　　　/// ＜summary＞<br/>　　　/// 将错误信息记录到Win2000/NT事件日志中<br/>　　　/// ＜param name=&#34;message&#34;＞需要记录的文本信息＜/param＞<br/>　　　/// ＜/summary＞<br/>　　　public static void WriteError(String message)<br/>　　　{<br/>　　　　WriteLog(TraceLevel.Error, message);<br/>　　　}<br/><br/>　　　/// ＜summary＞<br/>　　　/// 将警告信息记录到Win2000/NT事件日志中<br/>　　　/// ＜param name=&#34;message&#34;＞需要记录的文本信息＜/param＞<br/>　　　/// ＜/summary＞<br/>　　　public static void WriteWarning(String message)<br/>　　　{<br/>　　　　WriteLog(TraceLevel.Warning, message);　　<br/>　　　}<br/><br/>　　　/// ＜summary＞<br/>　　　/// 将提示信息记录到Win2000/NT事件日志中<br/>　　　/// ＜param name=&#34;message&#34;＞需要记录的文本信息＜/param＞<br/>　　　/// ＜/summary＞<br/>　　　public static void WriteInfo(String message)<br/>　　　{<br/>　　　　WriteLog(TraceLevel.Info, message);<br/>　　　}<br/>　　　/// ＜summary＞<br/>　　　/// 将跟踪信息记录到Win2000/NT事件日志中<br/>　　　/// ＜param name=&#34;message&#34;＞需要记录的文本信息＜/param＞<br/>　　　/// ＜/summary＞<br/>　　　public static void WriteTrace(String message)<br/>　　　{<br/>　　　　WriteLog(TraceLevel.Verbose, message);<br/>　　　}<br/><br/>　　　/// ＜summary＞<br/>　　　/// 格式化记录到事件日志的文本信息格式<br/>　　　/// ＜param name=&#34;ex&#34;＞需要格式化的异常对象＜/param＞<br/>　　　/// ＜param name=&#34;catchInfo&#34;＞异常信息标题字符串.＜/param＞<br/>　　　/// ＜retvalue＞<br/>　　　/// ＜para＞格式后的异常信息字符串，包括异常内容和跟踪堆栈.＜/para＞<br/>　　　/// ＜/retvalue＞<br/>　　　/// ＜/summary＞<br/>　　　public static String FormatException(Exception ex, String catchInfo)<br/>　　　{<br/>　　　　StringBuilder strBuilder = new StringBuilder();<br/>　　　　if (catchInfo != String.Empty)<br/>　　　　{<br/>　　　　　strBuilder.Append(catchInfo).Append(&#34;\r\n&#34;);<br/>　　　　}<br/>　　　　strBuilder.Append(ex.Message).Append(&#34;\r\n&#34;).Append(ex.StackTrace);<br/>　　　　return strBuilder.ToString();<br/>　　　}<br/><br/>　　　/// ＜summary＞<br/>　　　/// 实际事件日志写入方法<br/>　　　/// ＜param name=&#34;level&#34;＞要记录信息的级别（error,warning,info,trace).＜/param＞<br/>　　　/// ＜param name=&#34;messageText&#34;＞要记录的文本.＜/param＞<br/>　　　/// ＜/summary＞<br/>　　　private static void WriteLog(TraceLevel level, String messageText)<br/>　　　{<br/>　　　　try<br/>　　　　{ <br/>　　　　　EventLogEntryType LogEntryType;<br/>　　　　　switch (level)<br/>　　　　　{<br/>　　　　　　case TraceLevel.Error:<br/>　　　　　　　LogEntryType = EventLogEntryType.Error;<br/>　　　　　　　break;<br/>　　　　　　case TraceLevel.Warning:<br/>　　　　　　　LogEntryType = EventLogEntryType.Warning;<br/>　　　　　　　break;<br/>　　　　　　case TraceLevel.Info:<br/>　　　　　　　LogEntryType = EventLogEntryType.Information;<br/>　　　　　　　break;<br/>　　　　　　case TraceLevel.Verbose:<br/>　　　　　　　LogEntryType = EventLogEntryType.SuccessAudit;<br/>　　　　　　　break;<br/>　　　　　　default:<br/>　　　　　　　LogEntryType = EventLogEntryType.SuccessAudit;<br/>　　　　　　　break;<br/>　　　　　}<br/><br/>　　　　　EventLog eventLog = new EventLog(&#34;Application&#34;, ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );<br/>　　　　　//写入事件日志<br/>　　　　　eventLog.WriteEntry(messageText, LogEntryType);<br/><br/>　　　　}<br/>　　　catch {} //忽略任何异常<br/>　　} <br/>　} //class ApplicationLog<br/>}<br/><br/>　　12.Panel 横向滚动，纵向自动扩展<br/><br/><br/><br/>＜asp:panel style=&#34;overflow-x:scroll;overflow-y:auto;&#34;＞＜/asp:panel＞<br/><br/><br/>　　13.回车转换成Tab <br/><br/><br/>＜scrīpt language=&#34;javascrīpt&#34; for=&#34;document&#34; event=&#34;onkeydown&#34;＞<br/>　if(event.keyCode==13 &amp;&amp; event.srcElement.type!=’button’ &amp;&amp; event.srcElement.type!=’submit’ &amp;&amp; 　　　　event.srcElement.type!=’reset’ &amp;&amp; event.srcElement.type!=’’&amp;&amp; event.srcElement.type!=’textarea’); <br/>　　　event.keyCode=9;<br/>＜/scrīpt＞<br/><br/>onkeydown=&#34;if(event.keyCode==13) event.keyCode=9&#34;<br/><br/><br/>　　14.DataGrid超级连接列<br/><br/><br/>DataNavigateUrlField=&#34;字段名&#34; DataNavigateUrlFormatString=&#34;<a href="http://xx/inc/del" target="_blank" rel="external">http://xx/inc/del</a>&#101;te.aspx?ID={0}&#34;<br/><br/><br/>　　15.DataGrid行随鼠标变色<br/><br/><br/>private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)<br/>{<br/>　if (e.Item.ItemType!=ListItemType.Header)<br/>　{<br/>　　e.Item.Attributes.Add( &#34;onmouseout&#34;,&#34;this.style.backgroundColor=\&#34;&#34;+e.Item.Style[&#34;BACKGROUND-COLOR&#34;]+&#34;\&#34;&#34;);<br/>　　e.Item.Attributes.Add( &#34;onmouseover&#34;,&#34;this.style.backgroundColor=\&#34;&#34;+ &#34;#EFF3F7&#34;+&#34;\&#34;&#34;);<br/>　}<br/>}<br/><br/><br/>　　16.模板列<br/><br/><br/>＜ASP:TEMPLATECOLUMN visible=&#34;False&#34; sorte&#173;xpression=&#34;demo&#34; headertext=&#34;ID&#34;＞<br/>＜ITEMTEMPLATE＞<br/>＜ASP:LABEL text=’＜%# DataBinder.Eval(Container.DataItem, &#34;ArticleID&#34;)%＞’ runat=&#34;server&#34; width=&#34;80%&#34; id=&#34;lblColumn&#34; /＞<br/>＜/ITEMTEMPLATE＞<br/>＜/ASP:TEMPLATECOLUMN＞<br/><br/>＜ASP:TEMPLATECOLUMN headertext=&#34;选中&#34;＞<br/>＜HEADERSTYLE wrap=&#34;False&#34; horizontalalign=&#34;Center&#34;＞＜/HEADERSTYLE＞<br/>＜ITEMTEMPLATE＞<br/>＜ASP:CHECKBOX id=&#34;chkExport&#34; runat=&#34;server&#34; /＞<br/>＜/ITEMTEMPLATE＞<br/>＜EDITITEMTEMPLATE＞<br/>＜ASP:CHECKBOX id=&#34;chkExportON&#34; runat=&#34;server&#34; enabled=&#34;true&#34; /＞<br/>＜/EDITITEMTEMPLATE＞<br/>＜/ASP:TEMPLATECOLUMN＞<br/><br/><br/>　　后台代码<br/><br/><br/>protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)<br/>{<br/>　//改变列的选定，实现全选或全不选。<br/>　CheckBox chkExport ;<br/>　if( CheckAll.Checked)<br/>　{<br/>　　foreach(DataGridItem oDataGridItem in MyDataGrid.Items)<br/>　　{<br/>　　　chkExport = (CheckBox)oDataGridItem.FindControl(&#34;chkExport&#34;);<br/>　　　chkExport.Checked = true;<br/>　　}<br/>　}<br/>　else<br/>　{<br/>　　foreach(DataGridItem oDataGridItem in MyDataGrid.Items)<br/>　　{<br/>　　　chkExport = (CheckBox)oDataGridItem.FindControl(&#34;chkExport&#34;);<br/>　　　chkExport.Checked = false;<br/>　　}<br/>　}<br/>}<br/><br/><br/>　　17.数字格式化<br/><br/>　　【＜%#Container.DataItem(&#34;price&#34;)%＞的结果是500.0000，怎样格式化为500.00?】<br/><br/><br/>＜%#Container.DataItem(&#34;price&#34;,&#34;{0:￥#,##0.00}&#34;)%＞<br/><br/>int i=123456;<br/>string s=i.ToString(&#34;###,###.00&#34;);<br/><br/>18.日期格式化<br/><br/>　　【aspx页面内：＜%# DataBinder.Eval(Container.DataItem,&#34;Company_Ureg_Date&#34;)%＞<br/><br/>　　显示为： 2004-8-11 19:44:28<br/><br/>　　我只想要：2004-8-11 】<br/><br/><br/>＜%# DataBinder.Eval(Container.DataItem,&#34;Company_Ureg_Date&#34;,&#34;{0:yyyy-M-d}&#34;)%＞<br/><br/><br/>　　应该如何改？<br/><br/>　　【格式化日期】<br/><br/>　　取出来,一般是object((DateTime)objectFromDB).ToString(&#34;yyyy-MM-dd&#34;);<br/><br/>　　【日期的验证表达式】<br/><br/>　　A.以下正确的输入格式： [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31] <br/><br/><br/>^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$<br/><br/><br/>　　B.以下正确的输入格式：[0001-12-31], [9999 09 30], [2002/03/03] <br/><br/><br/>^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$<br/><br/><br/>　　【大小写转换】<br/><br/><br/>HttpUtility.HtmlEncode(string);<br/>HttpUtility.HtmlDecode(string)<br/><br/><br/>　　19.如何设定全局变量<br/><br/>　　Global.asax中<br/><br/>　　Application_Start()事件中<br/><br/>　　添加Application[属性名] ＝ xxx;<br/><br/>　　就是你的全局变量<br/><br/>　　20.怎样作到HyperLinkColumn生成的连接后，点击连接，打开新窗口？<br/><br/>　　HyperLinkColumn有个属性Target,将器值设置成&#34;_blank&#34;即可.(Target=&#34;_blank&#34;)<br/><br/>　　【ASPNETMENU】点击菜单项弹出新窗口<br/><br/>　　在你的menuData.xml文件的菜单项中加入URLTarget=&#34;_blank&#34;，如：<br/><br/><br/>＜?xml version=&#34;1.0&#34; encoding=&#34;GB2312&#34;?＞<br/>＜MenuData ImagesBaseURL=&#34;images/&#34;＞ <br/>＜MenuGroup＞<br/>＜MenuItem Label=&#34;内参信息&#34; URL=&#34;Infomation.aspx&#34; ＞<br/>＜MenuGroup ID=&#34;BBC&#34;＞<br/>＜MenuItem Label=&#34;公告信息&#34; URL=&#34;Infomation.aspx&#34; URLTarget=&#34;_blank&#34; LeftIcon=&#34;file.gif&#34;/＞<br/>＜MenuItem Label=&#34;编制信息简报&#34; URL=&#34;NewInfo.aspx&#34; LeftIcon=&#34;file.gif&#34; /＞<br/>......<br/><br/><br/>　　最好将你的aspnetmenu升级到1.2版<br/><br/>　　21.读取DataGrid控件TextBox值<br/><br/><br/>foreach(DataGrid dgi in yourDataGrid.Items)<br/>{<br/>　TextBox tb = (TextBox)dgi.FindControl(&#34;yourTextBoxId&#34;);<br/>　tb.Text....<br/>}<br/><br/><br/>　　23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列，要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?<br/><br/>　　〖思归〗<br/><br/><br/>＜asp:TemplateColumn HeaderText=&#34;数量&#34;＞ <br/>＜ItemTemplate＞<br/>＜asp:TextBox id=&#34;ShuLiang&#34; runat=’server’ Text=’＜%# DataBinder.Eval(Container.DataItem,&#34;DG_ShuLiang&#34;)%＞’ <br/>onkeyup=&#34;javascrīpt:DoCal()&#34;<br/>/＞<br/><br/>＜asp:RegularExpressionValidator id=&#34;revS&#34; runat=&#34;server&#34; ControlToValidate=&#34;ShuLiang&#34; ErrorMessage=&#34;must be integer&#34; ValidationExpression=&#34;^\d+$&#34; /＞<br/>＜/ItemTemplate＞<br/>＜/asp:TemplateColumn＞<br/><br/>＜asp:TemplateColumn HeaderText=&#34;单价&#34;＞ <br/>＜ItemTemplate＞<br/>＜asp:TextBox id=&#34;DanJian&#34; runat=’server’ Text=’＜%# DataBinder.Eval(Container.DataItem,&#34;DG_DanJian&#34;)%＞’ <br/>onkeyup=&#34;javascrīpt:DoCal()&#34;<br/>/＞<br/><br/>＜asp:RegularExpressionValidator id=&#34;revS2&#34; runat=&#34;server&#34; ControlToValidate=&#34;DanJian&#34; ErrorMessage=&#34;must be numeric&#34; ValidationExpression=&#34;^\d+(\.\d*)?$&#34; /＞<br/><br/>＜/ItemTemplate＞<br/>＜/asp:TemplateColumn＞<br/><br/>＜asp:TemplateColumn HeaderText=&#34;金额&#34;＞ <br/>＜ItemTemplate＞<br/>＜asp:TextBox id=&#34;JinE&#34; runat=’server’ Text=’＜%# DataBinder.Eval(Container.DataItem,&#34;DG_JinE&#34;)%＞’ /＞<br/>＜/ItemTemplate＞<br/>＜/asp:TemplateColumn＞＜scrīpt language=&#34;javascrīpt&#34;＞<br/>function DoCal()<br/>{<br/>　var e = event.srcElement;<br/>　var row = e.parentNode.parentNode;<br/>　var txts = row.all.tags(&#34;INPUT&#34;);<br/>　if (!txts.length || txts.length ＜ 3)<br/>　　return;<br/><br/>　var q = txts[txts.length-3].value;<br/>　var p = txts[txts.length-2].value;<br/><br/>　if (isNaN(q) || isNaN(p))<br/>　　return;<br/><br/>　q = parseInt(q);<br/>　p = parseFloat(p);<br/><br/>　txts[txts.length-1].value = (q * p).toFixed(2);<br/>}<br/>＜/scrīpt＞<br/><br/>24.datagrid选定比较底下的行时，为什么总是刷新一下，然后就滚动到了最上面，刚才选定的行因屏幕的关系就看不到了。<br/><br/><br/>page_load <br/>page.smartNavigation=true<br/><br/><br/>　　25.在Datagrid中修改数据，当点击编辑键时，数据出现在文本框中，怎么控制文本框的大小 ? <br/><br/><br/>private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)<br/>{<br/>　for(int i=0;i＜e.Item.Cells.Count-1;i++)<br/>　　if(e.Item.ItemType==ListItemType.EditType)<br/>　　{<br/>　　　e.Item.Cells[i].Attributes.Add(&#34;Width&#34;, &#34;80px&#34;)<br/>　　} <br/>}<br/><br/><br/>　　26.对话框<br/><br/><br/>private static string scrīptBegin = &#34;＜scrīpt language=\&#34;Javascrīpt\&#34;＞&#34;;<br/>private static string scrīptEnd = &#34;＜/scrīpt＞&#34;;<br/><br/>public static void ConfirmMessageBox(string PageTarget,string Content)<br/>{<br/>　string ConfirmContent=&#34;var retValue=window.confirm(’&#34;+Content+&#34;’);&#34;+&#34;if(retValue){window.location=’&#34;+PageTarget+&#34;’;}&#34;;<br/><br/>　ConfirmContent=scrīptBegin + ConfirmContent + scrīptEnd;<br/><br/>　Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;<br/>　ParameterPage.RegisterStartupscrīpt(&#34;confirm&#34;,ConfirmContent);<br/>　//Response.Write(strscrīpt);<br/>}<br/><br/><br/>　　27. 将时间格式化：string aa=DateTime.Now.ToString(&#34;yyyy年MM月dd日&#34;); <br/><br/>　　1.1 取当前年月日时分秒 <br/><br/><br/>currentTime=System.DateTime.Now;<br/><br/><br/>　　1.2 取当前年 <br/><br/><br/>int 年= DateTime.Now.Year;<br/><br/><br/>　　1.3 取当前月 <br/><br/><br/>int 月= DateTime.Now.Month;<br/><br/><br/>　　1.4 取当前日 <br/><br/><br/>int 日= DateTime.Now.Day;<br/><br/><br/>　　1.5 取当前时 <br/><br/><br/>int 时= DateTime.Now.Hour;<br/><br/><br/>　　1.6 取当前分 <br/><br/><br/>int 分= DateTime.Now.Minute;<br/><br/><br/>　　1.7 取当前秒 <br/><br/><br/>int 秒= DateTime.Now.Second;<br/><br/><br/>　　1.8 取当前毫秒 <br/><br/><br/>int 毫秒= DateTime.Now.Millisecond;<br/><br/><br/>　　28．自定义分页代码：<br/><br/>　　先定义变量 ：<br/><br/><br/>public static int pageCount; //总页面数 <br/>public static int curPageIndex=1; //当前页面<br/><br/><br/>　　下一页： <br/><br/><br/>if(DataGrid1.CurrentPageIndex ＜ (DataGrid1.PageCount - 1)) <br/>{ <br/>　DataGrid1.CurrentPageIndex += 1; <br/>　curPageIndex+=1; <br/>} <br/><br/>bind(); // DataGrid1数据绑定函数<br/><br/><br/>　　上一页： <br/><br/><br/>if(DataGrid1.CurrentPageIndex ＞0) <br/>{ <br/>　DataGrid1.CurrentPageIndex += 1; <br/>　curPageIndex-=1; <br/>} <br/><br/>bind(); // DataGrid1数据绑定函数<br/><br/><br/>　　直接页面跳转： <br/><br/><br/>int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值 <br/><br/>if(a＜DataGrid1.PageCount) <br/>{ <br/>　this.DataGrid1.CurrentPageIndex=a; <br/>} <br/><br/>bind();<br/><br/>29．DataGrid使用： <br/><br/>　　添加删除确认： <br/><br/><br/>private void DataGrid1_ItemCr&#101;ated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) <br/>{ <br/>　foreach(DataGridItem di in this.DataGrid1.Items) <br/>　{ <br/>　　if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.Alt&#101;rnatingItem) <br/>　　{ <br/>　　　((LinkButton)di.Cells[8].Controls[0]).Attributes.Add(&#34;onclick&#34;,&#34;return confirm(’确认删除此项吗?’);&#34;); <br/>　　} <br/>　} <br/>}<br/><br/><br/>　　样式交替： <br/><br/><br/>ListItemType itemType = e.Item.ItemType; <br/><br/>if (itemType == ListItemType.Item ) <br/>{ <br/>　e.Item.Attributes[&#34;onmouseout&#34;] = &#34;javascrīpt:this.style.backgroundColor=’#FFFFFF’;&#34;; <br/>　e.Item.Attributes[&#34;onmouseover&#34;] = &#34;javascrīpt:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;&#34; ; <br/>} <br/>else if( itemType == ListItemType.Alt&#101;rnatingItem) <br/>{ <br/>　e.Item.Attributes[&#34;onmouseout&#34;] = &#34;javascrīpt:this.style.backgroundColor=’#a0d7c4’;&#34;; <br/>　e.Item.Attributes[&#34;onmouseover&#34;] = &#34;javascrīpt:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;&#34; ; <br/>}<br/><br/><br/>　　添加一个编号列： <br/><br/><br/>DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable <br/>DataColumn dc=dt.Columns.Add(&#34;number&#34;,System.Type.GetType(&#34;System.String&#34;)); <br/><br/>for(int i=0;i＜dt.Rows.Count;i++) <br/>{ <br/>　dt.Rows[i][&#34;number&#34;]=(i+1).ToString(); <br/>} <br/><br/>DataGrid1.DataSource=dt; <br/>DataGrid1.DataBind();<br/><br/><br/>　　DataGrid1中添加一个CheckBox，页面中添加一个全选框 <br/><br/><br/>private void CheckBox2_CheckedChanged(object sender, System.EventArgs e) <br/>{ <br/>　foreach(DataGridItem thisitem in DataGrid1.Items) <br/>　{ <br/>　　((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked; <br/>　} <br/>}<br/><br/><br/>　　将当前页面中DataGrid1显示的数据全部删除 <br/><br/><br/>foreach(DataGridItem thisitem in DataGrid1.Items) <br/>{ <br/>　if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked) <br/>　{ <br/>　　string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString(); <br/>　　Del (strloginid); //删除函数 <br/>　} <br/>}<br/><br/><br/>　　30．当文件在不同目录下，需要获取数据库连接字符串（如果连接字符串放在Web.config，然后在Global.asax中初始化） <br/><br/>　　在Application_Start中添加以下代码： <br/><br/><br/>Application[&#34;ConnStr&#34;]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.<br/>　　　AppSettings[&#34;ConnStr&#34;].ToString();<br/><br/><br/>　　31． 变量.ToString() <br/><br/>　　字符型转换 转为字符串 <br/><br/><br/>12345.ToString(&#34;n&#34;); //生成 12,345.00 <br/>12345.ToString(&#34;C&#34;); //生成 ￥12,345.00 <br/>12345.ToString(&#34;e&#34;); //生成 1.234500e+004 <br/>12345.ToString(&#34;f4&#34;); //生成 12345.0000 <br/>12345.ToString(&#34;x&#34;); //生成 3039 (16进制) <br/>12345.ToString(&#34;p&#34;); //生成 1,234,500.00%<br/><br/><br/>　　32、变量.Substring(参数1,参数2); <br/><br/>　　截取字串的一部分，参数1为左起始位数，参数2为截取几位。 如：string s1 = str.Substring(0,2); <br/><br/>　　33．在自己的网站上登陆其他网站：(如果你的页面是通过嵌套方式的话，因为一个页面只能有一个FORM，这时可以导向另外一个页面再提交登陆信息) <br/><br/><br/>＜scrīpt language=&#34;javascrīpt&#34;＞ <br/>＜!-- <br/>　function gook(pws) <br/>　{ <br/>　　frm.submit(); <br/>　} <br/>//--＞ <br/><br/>＜/scrīpt＞ ＜body leftMargin=&#34;0&#34; topMargin=&#34;0&#34; ōnload=&#34;javascrīpt:gook()&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34;＞ <br/>＜form name=&#34;frm&#34; action=&#34; <a href="http://220.194.55.68:6080/login.php?retid=7259" target="_blank" rel="external">http://220.194.55.68:6080/login.php?retid=7259</a> &#34; method=&#34;post&#34;＞ <br/>＜tr＞ <br/>＜td＞<br/>＜input id=&#34;f_user&#34; type=&#34;hidden&#34; size=&#34;1&#34; name=&#34;f_user&#34; runat=&#34;server&#34;＞<br/>＜input id=&#34;f_domain&#34; type=&#34;hidden&#34; size=&#34;1&#34; name=&#34;f_domain&#34; runat=&#34;server&#34;＞<br/>＜input class=&#34;box&#34; id=&#34;f_pass&#34; type=&#34;hidden&#34; size=&#34;1&#34; name=&#34;pwshow&#34; runat=&#34;server&#34;＞ <br/><br/>＜INPUT id=&#34;lng&#34; type=&#34;hidden&#34; maxLength=&#34;20&#34; size=&#34;1&#34; value=&#34;5&#34; name=&#34;lng&#34;＞<br/>＜INPUT id=&#34;tem&#34; type=&#34;hidden&#34; size=&#34;1&#34; value=&#34;2&#34; name=&#34;tem&#34;＞ <br/><br/>＜/td＞ <br/><br/>＜/tr＞ <br/><br/>＜/form＞<br/><br/><br/>　　文本框的名称必须是你要登陆的网页上的名称，如果源码不行可以用vsniffer 看看。 <br/><br/>　　下面是获取用户输入的登陆信息的代码： <br/><br/><br/>string name; <br/>name=Request.QueryString[&#34;EmailName&#34;]; <br/><br/>try <br/>{ <br/>　int a=name.IndexOf(&#34;@&#34;,0,name.Length); <br/>　f_user.Value=name.Substring(0,a); <br/>　f_domain.Value=name.Substring(a+1,name.Length-(a+1)); <br/>　f_pass.Value=Request.QueryString[&#34;Psw&#34;]; <br/>} <br/><br/>catch <br/>{ <br/>　scrīpt.Alert(&#34;错误的邮箱!&#34;); <br/>　Server.Transfer(&#34;index.aspx&#34;); <br/>}]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xscx.com/article/ASP.NET/852.htm" /> 
	  <id>http://www.xscx.com/default.asp?id=852</id>
  </entry>	
		
</feed>

