正文

asp.net常用函数精粹[2]2008-07-24 10:21:00

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

分享到:

11.//获取" . "后面的字符

 

i.ToString().Trim().Substring(i.ToString().Trim().LastIndexOf(".")+1).ToLower().Trim()

 

12. 打开新的窗口并传送参数:

  传送参数:

 

response.write("scriptwindow.open(*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+")/script")

 

接收参数:

 

string a = Request.QueryString("id");

string b = Request.QueryString("id1");

 

12.为按钮添加对话框

 

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

button.attributes.add("onclick","if(confirm(’are you sure...?’)){return true;}else{return false;}")

 

13.删除表格选定记录

 

int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];

string deleteCmd = "Delete from Employee where emp_id = " + intEmpID.ToString()

 

14.删除表格记录警告

 

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;

  }

}

 

15.点击表格行链接另一页

 

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

}

 

 

16.表格超连接列传递参数

 

asp:HyperLinkColumn Target="_blank" headertext="ID" DataTextField="id" NavigateUrl="aaa.aspx?id=

  <%# DataBinder.Eval(Container.DataItem, "数据字段1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>’ /

 

17.表格点击改变颜色

 

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

}

 

18.关于日期格式

  日期格式设定

DataFormatString="{0:yyyy-MM-dd}"

  我觉得应该在itembound事件中

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

19.获取错误信息并到指定页面

不要使用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会导致postback的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理

20.清空Cookie

 

Cookie.Expires=[DateTime];

Response.Cookies("UserName").Expires = 0

 

21.自定义异常处理

 

//自定义异常处理类

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

}

 

阅读(1619) | 评论(0)


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

评论

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