NET中常用的代码

    技术2022-05-11  80

    为GridView添加索引列

    < asp:TemplateField HeaderText = " ID " >                              < ItemTemplate >                                  <% # Container.DataItemIndex  + 1   %>                              </ ItemTemplate > </ asp:TemplateField >

    二、批量删除列模板列代码:

    < asp:TemplateField HeaderText = " 选择 " >                              < ItemTemplate >                                  < asp:CheckBox ID = " chkSelect "  runat = " server "   />                              </ ItemTemplate > </ asp:TemplateField >

    全选:

    for  ( int  i  =   0 ; i  <  gv.Rows.Count; i ++ )         {            CheckBox chkSelect = (CheckBox)gv.Rows[i].FindControl("chkSelect");            chkSelect.Checked = true;        }

    反选:

    for  ( int  i  =   0 ; i  <  gv.Rows.Count; i ++ )         {            CheckBox chkSelect = (CheckBox)gv.Rows[i].FindControl("chkSelect");            chkSelect.Checked = !chkSelect.Checked;        }

    取消选择:

    for  ( int  i  =   0 ; i  <  gv.Rows.Count; i ++ )         {            CheckBox chkSelect = (CheckBox)gv.Rows[i].FindControl("chkSelect");            chkSelect.Checked = false;        }

    删除:

    for  ( int  i  =   0 ; i  <  gv.Rows.Count; i ++ )         {            CheckBox chkSelect = (CheckBox)gv.Rows[i].FindControl("chkSelect");            if (chkSelect.Checked)            {                //删除记录            }        }

    三、删除表格选定记录

    int  id  =  ( int )MyDataGrid.DataKeys[e.Item.ItemIndex];  // 在调用前必须指定DataKeyNames属性为要获取 的主键。 string  deleteCmd  =   " DELETE from Employee where emp_id =  "   +  intEmpID.ToString();

    四、为按钮添加确认对话框

    button.Attributes.Add( " onclick " , " return confirm(’确认?’) " ); 

    五、点击表格行链接另一页

    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 + "’);"); }  

    六、超连接列传递参数

    <asp:HyperLinkColumn Target = " _blank "  headertext = " ID号 "  DataTextField = " id "  NavigateUrl = " aaa.aspx?id=’   < % # DataBinder.Eval(Container.DataItem,  " 数据字段1 " ) % >’  &  name = ’< % # DataBinder.Eval(Container.DataItem,  " 数据字段2 " ) % >’  / > 

    七、绑定日期格式

    e.items.cell[ " time " ].text = DateTime.Parse(e.items.cell[ " time " ].text.ToString( " yyyy-MM-dd " )) 

    八、统一捕获异常 Global.asax中:

    protected   void  Application_Error(Object sender, EventArgs e)  if (Server.GetLastError() is HttpUnhandledException) Server.Transfer("MyErrorPage.aspx"); //编写添加到日志的代码Log.add();}  

    九、自定义异常处理

    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 }  十一、DataGrid行随鼠标变色

    十、Panel 横向滚动,纵向自动扩展

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

     

    private   void  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=/"""#EEE6F8"+"/"");  } }  

    十二、读取DataGrid控件的TextBox值

    foreach (DataGrid dgi  in  yourDataGrid.Items)  {  TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");  tb.Text. }  

    十三、当点击编辑键时,控制文本框的大小

    private   void  DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)  {  for(int i=0;i<e.Item.Cells.Count-1;i++)   if(e.Item.ItemType==ListItemType.EditType)   {    e.Item.Cells[i].Attributes.Add("Width""80px")   } }  

    十四、弹出对话框

    private   static   string  ScriptBegin  =   " <script language=/ " JavaScript/ " " private   static   string  ScriptEnd  =   " </script> " public   static   void  ConfirmMessageBox( string  PageTarget, string  Content)  {  string ConfirmContent="var retValue=window.confirm(’"+Content+"’);"+"if(retValue){window.location="+PageTarget+"’;}" ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;  Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;  ParameterPage.RegisterStartupScript("confirm",ConfirmContent);  //Response.Write(strScript); }  

    最新回复(0)