• 技术文章 >后端开发 >C#.Net教程

    ASP.NET中常用的种代码实例解析

    Y2JY2J2017-04-26 10:53:09原创723
    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 
    }

    php入门到就业线上直播课:查看学习

    以上就是ASP.NET中常用的种代码实例解析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:ASP.NET 种代码
    上一篇:C#Web应用程序入门经典笔记(下册) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• c语言本身有没有输入输出语句• c语言中源文件编译后生成什么文件• c语言中的标识符是由什么组成• c语言中case是什么意思• c语言中关键字有多少个
    1/1

    PHP中文网