正文

 asp.net常见问题(二)2007-04-03 09:53:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/tiay/24570.html

分享到:

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 + "')");}   ★特别注意:【?id=】 处不能为 【?id =】 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.asaxprotected 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}

阅读(2782) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册