asp.net非常实用语句21-26条(转载)

21.自定义异常处理 

//自定义异常处理类 
using System; 
using System.Diagnostics; 
namespace MyAppException 

  
/// <summary> 
  
/// 从系统异常类ApplicationException继承的应用程序异常处理类。 
  
/// 自动将异常内容记录到Windows NT/2000的应用程序日志 
  
/// </summary> 
  public class AppException:System.ApplicationException 
  { 
  
public AppException() 
  { 
  
if (ApplicationConfiguration.EventLogEnabled)LogEvent("出现一个未知错误。"); 
  } 
  
public AppException(string message) 
  { 
  LogEvent(message); 
  } 
  
public AppException(string message,Exception innerException) 
  { 
  LogEvent(message); 
  
if (innerException != null
  { 
  LogEvent(innerException.Message); 
  } 
  } 
  
//日志记录类 
  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 



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


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


23.回车转换成Tab 
(
1


<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> 


(
2)  //当在有keydown事件的控件上敲回车时,变为tab 


public void Tab(System.Web .UI.WebControls .WebControl webcontrol) 

webcontrol.Attributes .Add (
"onkeydown", "if(event.keyCode==13event.keyCode=9"); 

24.DataGrid超级连接列 
DataNavigateUrlField
="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}" 


25.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"+"\""); 
  } 



26.模板列 


<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" horiz></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
  } 
  } 
}

 

文章出处:http://topic.csdn.net/u/20080916/12/e16bf1c5-9344-4e03-83aa-bd4ebd84f6ad.html

 

posted on 2008-09-28 11:25  ringwang  阅读(275)  评论(0编辑  收藏  举报