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

 

1、 日志记录类

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

  using System;

  using System.Configuration;

  using System.Diagnostics;

  using System.IO;

  using System.Text;

  using System.Threading;

  

  namespace MyEventLog

  {

  /** <summary>

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

  /// <remarks>

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

  /// </remarks>

  /// </summary>

  public class ApplicationLog

  {

   /** <summary>

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

   /// <param name="message">需要记录的文本信息</param>

   /// </summary>

   public static void WriteError(String message)

   {

  

   WriteLog(TraceLevel.Error, message);

   }

  

   /** <summary>

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

   /// <param name="message">需要记录的文本信息</param>

   /// </summary>

   public static void WriteWarning(String message)

   {

  

   WriteLog(TraceLevel.Warning, message);

   }

  

   /** <summary>

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

   /// <param name="message">需要记录的文本信息</param>

   /// </summary>

   public static void WriteInfo(String message)

   {

   WriteLog(TraceLevel.Info, message);

   }

   /** <summary>

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

   /// <param name="message">需要记录的文本信息</param>

   /// </summary>

   public static void WriteTrace(String message)

   {

  

   WriteLog(TraceLevel.Verbose, message);

   }

  /** <summary>

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

   /// <param name="ex">需要格式化的异常对象</param>

   /// <param name="catchInfo">异常信息标题字符串.</param>

   /// <retvalue>

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

   /// </retvalue>

   /// </summary>

   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();

   }

  

   /** <summary>

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

   /// <param name="level">要记录信息的级别(error,warning,info,trace).</param>

   /// <param name="messageText">要记录的文本.</param>

   /// </summary>

   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 横向滚动,纵向自动扩展

   <asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>

  

3.回车转换成Tab

  

  <script language="javascript" for="document" event="onkeydown">

  if(event.keyCode==13 && event.srcElement.type!='button' &&

  event.srcElement.type!='submit' && event.srcElement.type!='reset'

  && event.srcElement.type!=''&& event.srcElement.type!='textarea');

  event.keyCode=9;

  </script>

  

  ο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=/""+ "#EFF 3F 7"+"/"");

   }

   }

  

  6.模板列

  

  <ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">

  <ITEMTEMPLATE>

   <ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem,

  "ArticleID")%>' runat="server" width="80%" id="lblColumn" />

  </ITEMTEMPLATE>

  </ASP:TEMPLATECOLUMN>

  

  <ASP:TEMPLATECOLUMN headertext="选中">

  <HEADERstyle wrap="False" horizontalalign="Center"></HEADERstyle>

  <ITEMTEMPLATE>

   <ASP:CHECKBOX id="chkExport" runat="server" />

  </ITEMTEMPLATE>

  <EDITITEMTEMPLATE>

  <ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" />

  </EDITITEMTEMPLATE>

  </ASP:TEMPLATECOLUMN>

  

后台代码

 

  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"

    如:   

  <?xml version="1.0" encoding="GB2312"?>

  <MenuData ImagesBaseURL="images/">

   <MenuGroup>

   <MenuItem Label="内参信息" URL="Infomation.aspx" >

   <MenuGroup ID="BBC">

   <MenuItem Label="公告信息" URL="Infomation.aspx"

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

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

   最好将你的aspnetmenu升级到1.2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值