Asp.net开发常用技巧收集二

 

1、 日志记录类

日志纪录类可以把数据存储在日志纪录里。系统日志可以在运行里输入“eventvew.msc”进行查看。

  using System;

  using System.Configuration;

  using System.Diagnostics;

  using System.IO;

  using System.Text;

  using System.Threading;

  

  namespace MyEventLog

  {

  /**////

  /// 事件日志记录类,提供事件日志记录支持

  ///

  /// 定义了4个日志记录方法 (error, warning, info, trace)

  ///

  ///

  public class ApplicationLog

  {

   /**////

   /// 将错误信息记录到Win2000/NT事件日志中

   /// 需要记录的文本信息

   ///

   public static void WriteError(String message)

   {

  

   WriteLog(TraceLevel.Error, message);

   }

  

   /**////

   /// 将警告信息记录到Win2000/NT事件日志中

   /// 需要记录的文本信息

   ///

   public static void WriteWarning(String message)

   {

  

   WriteLog(TraceLevel.Warning, message);

   }

  

   /**////

   /// 将提示信息记录到Win2000/NT事件日志中

   /// 需要记录的文本信息

   ///

   public static void WriteInfo(String message)

   {

   WriteLog(TraceLevel.Info, message);

   }

   /**////

   /// 将跟踪信息记录到Win2000/NT事件日志中

   /// 需要记录的文本信息

   ///

   public static void WriteTrace(String message)

   {

  

   WriteLog(TraceLevel.Verbose, message);

   }

  /**////

   /// 格式化记录到事件日志的文本信息格式

   /// 需要格式化的异常对象

   /// 异常信息标题字符串.

   ///

   /// 格式后的异常信息字符串,包括异常内容和跟踪堆栈.

   ///

   ///

   public static String formatException(Exception ex, String catchInfo)

   {

   StringBuilder strBuilder = new StringBuilder();

   if (catchInfo != String.Empty)

   {

   strBuilder.Append(catchInfo).Append("/r/n");

   }

   strBuilder.Append(ex.Message).Append("/r/n").Append(ex.StackTrace);

   return strBuilder.ToString();

   }

  

   /**////

   /// 实际事件日志写入方法

   /// 要记录信息的级别(error,warning,info,trace).

   /// 要记录的文本.

   ///

   private static void WriteLog(TraceLevel level, String messageText)

   {

  

   try

   {

   EventLogEntryType LogEntryType;

   switch (level)

   {

   case TraceLevel.Error:

   LogEntryType = EventLogEntryType.Error;

   break;

   case TraceLevel.Warning:

   LogEntryType = EventLogEntryType.Warning;

   break;

   case TraceLevel.Info:

   LogEntryType = EventLogEntryType.Information;

   break;

   case TraceLevel.Verbose:

   LogEntryType = EventLogEntryType.SuccessAudit;

   break;

   default:

   LogEntryType = EventLogEntryType.SuccessAudit;

   break;

   }

  

   EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );

   //写入事件日志

   eventLog.WriteEntry(messageText, LogEntryType);

  

   }

   catch {} //忽略任何异常

   }

  } //class ApplicationLog

  } 

 

2.Panel 横向滚动,纵向自动扩展

  

  

3.回车转换成Tab

  

 

  

  οnkeydοwn="if(event.keyCode==13) event.keyCode=9"

  http://dotnet.aspx.cc/exam/enter2tab.aspx

  

 4.DataGrid超级连接列

  

  DataNavigateUrlField="字段名" DataNavigateUrlformatString="http://xx/inc/delete.aspx?ID={0}"

  

  

 5.DataGrid行随鼠标变色    

  private void DGzf_ItemDataBound

  (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

   {

   if (e.Item.ItemType!=ListItemType.Header)

   {

   e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=

  /""+e.Item.style["BACKGROUND-COLOR"]+"/"");

   e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=/""+ "#EFF3F7"+"/"");

   }

   }

  

  6.模板列

  

 

 

  

 

 

  

  选中">

 

 

  

 

 

 

 

 

  

后台代码

 

  protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)

   {

   //改变列的选定,实现全选或全不选。

   CheckBox chkExport ;

   if( CheckAll.Checked)

   {

   foreach(DataGridItem oDataGridItem in MyDataGrid.Items)

   {

   chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");

   chkExport.Checked = true;

   }

   }

   else

   {

   foreach(DataGridItem oDataGridItem in MyDataGrid.Items)

   {

   chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");

   chkExport.Checked = false;

   }

   }

   }

 

7.数字格式化   

  <%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?

  <%#Container.DataItem("price","{0:#,##0.00}")%>

  int i=123456;

  string s=i.ToString("###,###.00");

  

 8.日期格式化

  

  aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>

  显示为: 2004-8-11 19:44:28

  我只想要:2004-8-11

    <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>

    应该如何改?

   

  【格式化日期】

  取出来,一般是object

  ((DateTime)objectFromDB).ToString("yyyy-MM-dd");

  

  【日期的验证表达式】

  A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]   

  ^((/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})))?$

  

  B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]

  

  ^/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]))$

  

  【大小写转换】    

  HttpUtility.HtmlEncode(string);

  HttpUtility.HtmlDecode(string)

  

  9.如何设定全局变量    

    Global.asax

    Application_Start()事件中

    添加Application[属性名] xxx;

    就是你的全局变量

  

  10.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?

 

  HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank")

  ASPNETMENU】点击菜单项弹出新窗口

    在你的menuData.xml文件的菜单项中加入URLTarget="_blank"

    如:   

 

 

  

   内参信息" URL="Infomation.aspx" >

  

   公告信息" URL="Infomation.aspx"

  URLTarget="_blank" LeftIcon="file.gif"/>

   编制信息简报" URL="NewInfo.aspx" LeftIcon="file.gif" />

   最好将你的aspnetmenu升级到1.2

你可能感兴趣的:(ASP.NET)