注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网事

备忘录

 
 
 

日志

 
 

Asp.Net常用技术<转>  

2009-04-01 09:49:29|  分类: .Net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

目录:

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

2.为按钮添加对话框

3.删除表格选定记录

4.删除表格记录警告

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

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

7.表格点击改变颜色

8.关于日期格式

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

10.清空Cookie

11.自定义异常处理

12.Panel 横向滚动,纵向自动扩展

13.回车转换成Tab (重复)

14.DataGrid超级连接列 行随鼠标变色

16.模板列

17.数字格式化

18.日期格式化

19【大小写转换】

21.如何设定全局变量

22.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?

23.读取DataGrid控件TextBox值

24.在DataGrid中数量*单价=金额

25.datagrid选定比较底下的行时,为什么总是刷新一下

26.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?

27.对话框

28.将时间格式化

29.自定义分页代码

30.DataGrid使用 添加删除确认 样式交替 添加一个编号列

31. 当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化)

32.变量.ToString()

33.变量.Substring(参数1,参数2)

34.在自己的网站上登陆其他网站

35.警告窗口

36.重载此警告窗口,使某控件获得焦点

37.确认对话框

38.重载确认对话框,点击确定触发一个隐藏按钮事件,点击取消触发一个隐藏按钮事件

39.获得焦点

40.子窗体返回主窗体

41.判断是否为数字

42.将回车转换为TAB

43.datagrid分页中如果删除时出现超出索引

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.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

}

12.Panel 横向滚动,纵向自动扩展

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

13.回车转换成Tab (重复)

<script language="javascript" for="document" event="onkeydown">

 if(event.keyCode==13 && event.srcElement.type!=’button’ && event.srcElement.type!=’submit’ &&     event.srcElement.type!=’reset’ && event.srcElement.type!=’’&& event.srcElement.type!=’textarea’);

   event.keyCode=9;

</script>

onkeydown="if(event.keyCode==13) event.keyCode=9"

14.DataGrid超级连接列 DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://220.194.55.68:6080/login.php?retid=7259 " method="post">

<tr>

<td>

<input id="f_user" type="hidden" size="1" name="f_user" runat="server">

<input id="f_domain" type="hidden" size="1" name="f_domain" runat="server">

<input class="box" id="f_pass" type="hidden" size="1" name="pwshow" runat="server">

<INPUT id="lng" type="hidden" maxLength="20" size="1" value="5" name="lng">

<INPUT id="tem" type="hidden" size="1" value="2" name="tem">

</td>

</tr>

</form>

文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用vsniffer 看看。

  下面是获取用户输入的登陆信息的代码:

string name;

name=Request.QueryString["EmailName"];

try

{

 int a=name.IndexOf("@",0,name.Length);

 f_user.Value=name.Substring(0,a);

 f_domain.Value=name.Substring(a+1,name.Length-(a+1));

 f_pass.Value=Request.QueryString["Psw"];

}

catch

{

 Script.Alert("错误的邮箱!");

 Server.Transfer("index.aspx");

}

35.警告窗口

/**//// <summary>

/// 服务器端弹出alert对话框

/// </summary>

/// <param name="str_Message">提示信息,例子:"不能为空!"</param>

/// <param name="page">Page类</param>

public void Alert(string str_Message,Page page)

{

page.RegisterStartupScript("","<script>alert('"+str_Message+"');</script>");

}

36.重载此警告窗口,使某控件获得焦点

/**//// <summary>

/// 服务器端弹出alert对话框,并使控件获得焦点

/// </summary>

/// <param name="str_Ctl_Name">获得焦点控件Id值,比如:txt_Name</param>

/// <param name="str_Message">提示信息,例子:"请输入您姓名!"</param>

/// <param name="page">Page类</param>

public void Alert(string str_Ctl_Name,string str_Message,Page page)

{

page.RegisterStartupScript("","<script>alert('"+str_Message+"');document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");

}

37.确认对话框

/**//// <summary>

/// 服务器端弹出confirm对话框

/// </summary>

/// <param name="str_Message">提示信息,例子:"您是否确认删除!"</param>

/// <param name="btn">隐藏Botton按钮Id值,比如:btn_Flow</param>

/// <param name="page">Page类</param>

public void Confirm(string str_Message,string btn,Page page)

{

page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn+".click();}</script>");

}

38.重载确认对话框,点击确定触发一个隐藏按钮事件,点击取消触发一个隐藏按钮事件

/**//// <summary>

/// 服务器端弹出confirm对话框,询问用户准备转向那些操作,包括“确定”和“取消”时的操作

/// </summary>

/// <param name="str_Message">提示信息,比如:"成功增加数据,单击\"确定\"按钮填写流程,单击\"取消\"修改数据"</param>

/// <param name="btn_Redirect_Flow">"确定"按钮id值</param>

/// <param name="btn_Redirect_Self">"取消"按钮id值</param>

/// <param name="page">Page类</param>

public void Confirm(string str_Message,string btn_Redirect_Flow,string btn_Redirect_Self,Page page)

{

page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn_Redirect_Flow+".click();}else{document.forms(0)."+btn_Redirect_Self+".click();}</script>");

}

39.获得焦点

/**//// <summary>

/// 使控件获得焦点

/// </summary>

/// <param name="str_Ctl_Name">获得焦点控件Id值,比如:txt_Name</param>

/// <param name="page">Page类</param>

public void GetFocus(string str_Ctl_Name,Page page)

{

page.RegisterStartupScript("","<script>document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");

}

40.子窗体返回主窗体

/**////<summary>

///名称:redirect

///功能:子窗体返回主窗体

///参数:url

///返回值:空

///</summary>

public void redirect(string url,Page page)

{

if ( Session["IfDefault"]!=(object)"Default")

{    

   page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"';</script>");

}

}

41.判断是否为数字

/**//// <summary>

/// 名称:IsNumberic

/// 功能:判断输入的是否是数字

/// 参数:string oText:源文本

/// 返回值: bool true:是 false:否

/// </summary>

public bool IsNumberic(string oText)

{

try

   {

   int var1=Convert.ToInt32 (oText);

   return true;

}

catch

   {

   return false;

}

}

获得字符串实际长度(包括中文字符)

//获得字符串oString的实际长度

public int StringLength(string oString)

{

byte[] strArray=System.Text .Encoding.Default .GetBytes (oString);

int res=strArray.Length ;

return res;

}

42.将回车转换为TAB

//当在有keydown事件的控件上敲回车时,变为tab

public void Tab(System.Web .UI.WebControls .WebControl webcontrol)

{

webcontrol.Attributes .Add ("onkeydown", "if(event.keyCode==13) event.keyCode=9");

}

43.datagrid分页中如果删除时出现超出索引

public void jumppage(System.Web.UI.WebControls.DataGrid dg)

{

int int_PageLess; //定义页面跳转的页数

//如果当前页是最后一页

if(dg.CurrentPageIndex == dg.PageCount-1)

   {

   //如果就只有一页

   if(dg.CurrentPageIndex == 0)

    {

    //删除后页面停在当前页

    dg.CurrentPageIndex = dg.PageCount-1;   

   }

   else

    {

    //如果最后一页只有一条记录

    if((dg.Items.Count % dg.PageSize == 1) || dg.PageSize == 1)

     {

     //把最后一页最后一条记录删除后,页面应跳转到前一页

     int_PageLess = 2;

    }

    else      //如果最后一页的记录数大于1,那么在最后一页删除记录后仍然停在当前页

     {

     int_PageLess = 1;

    }

    dg.CurrentPageIndex = dg.PageCount - int_PageLess;

   }

}

}

  评论这张
 
阅读(162)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018