ASP.NET中常用的種代碼執行個體解析

來源:互聯網
上載者:User
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 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.