Asp.net常用代码

来源:互联网 发布:网络推广团队架构薪资 编辑:程序博客网 时间:2024/04/27 04:11
1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>") 接收参数: string a = Request.QueryString("id"); string b = Request.QueryString("id1"); 2.为按钮添加对话框 Button1.Attributes.Add("onclick","return confirm('确认?')"); button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}") 3.删除表格选定记录 int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex]; string deleteCmd = "Delete from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 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("onclick","return confirm('您是否确定要删除这条信息');");  break; default:  break;  } } 5.点击表格行链接另一页 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("onclick","window.open('Default.aspx?id=" + e.Item.Cells[0].Text + "');"); } 双击表格连接到另一页 在itemDataBind事件中 if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem) {  string orderItemID =e.item.cells[1].Text;  ...  e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + orderItemID + "'"); } 双击表格打开新一页 if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem) {  string orderItemID =e.item.cells[1].Text;  ...  e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + orderItemID + "')"); } 6.表格超连接列传递参数 <asp:HyperLinkColumn Target="_blank" headertext="ID号" DataTextField="id" NavigateUrl="aaa.aspx?id='  <%# DataBinder.Eval(Container.DataItem, "数据字段1")%' & name='%# DataBinder.Eval(Container.DataItem, "数据字段2")%' /> 7.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem) {  e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';   this.style.color='buttontext';this.style.cursor='default';"); } 写在DataGrid的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';  this.style.color='buttontext';this.style.cursor='default';"); e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';"); } 8.关于日期格式 日期格式设定 DataFormatString="{0:yyyy-MM-dd}" 我觉得应该在itembound事件中 e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd")) 9.获取错误信息并到指定页面 不要使用Response.Redirect,而应该使用Server.Transfer e.g // in global.asax protected void Application_Error(Object sender, EventArgs e) { if (Server.GetLastError() is HttpUnhandledException) Server.Transfer("MyErrorPage.aspx"); //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :) } Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空Cookie Cookie.Expires=[DateTime]; Response.Cookies("UserName").Expires = 0 11.自定义异常处理 //自定义异常处理类 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 } 12.Panel 横向滚动,纵向自动扩展 <asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel> 13.回车转换成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> onkeydown="if(event.keyCode==13) event.keyCode=9" 14.DataGrid超级连接列 DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}" 15.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"+"/"");  } }
 
原创粉丝点击