asp.net中常用的技术(转)

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  
  14.DataGrid超级连接列  

DataNavigateUrlField="字段名" DataNavigateUrlFormatShttp://xx/inc/delete.aspx?ID={0}" target=_blank>http://xx/inc/delete.aspx?ID={0}"  

  15.DataGrid行随鼠标变色  

private void DGzf_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=/""+ "#EFF3F7"+"/"");  
 }
17.数字格式化  

  【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】  

<%#Container.DataItem("price","{0:¥#,##0.00}")%>  

int i=123456;  
string s=i.ToString("###,###.00");  

18.日期格式化  

  【aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>  

  显示为: 2004-8-11 19:44:28  

  我只想要:2004-8-11 】  

<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>  

  应该如何改?  

  【格式化日期】  

  取出来,一般是object((DateTime)objectFromDB).ToString("yyyy-MM-dd");  

  【日期的验证表达式】  

  A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]  

^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[1-9])|(1[0-2]))/:([0-5][0-9])((/s)|(/:([0-5][0-9])/s))([AM|PM|am|pm]{2,2})))?$  

  B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]  

^/d{4}[/-///s]?((((0[13578])|(1[02]))[/-///s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[/-///s]?(([0-2][0-9])|(30)))|(02[/-///s]?[0-2][0-9]))$  

  【大小写转换】  

HttpUtility.HtmlEncode(string);  
HttpUtility.HtmlDecode(string)  

  19.如何设定全局变量  

  Global.asax中  

  Application_Start()事件中  

  添加Application[属性名] = xxx;  

  就是你的全局变量  

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

  HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank")  

  【ASPNETMENU】点击菜单项弹出新窗口  
30.当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化)  

  在Application_Start中添加以下代码:  

Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.  
   AppSettings["ConnStr"].ToString();  

  31. 变量.ToString()  

  字符型转换 转为字符串  

12345.ToString("n"); //生成 12,345.00  
12345.ToString("C"); //生成 ¥12,345.00  
12345.ToString("e"); //生成 1.234500e+004  
12345.ToString("f4"); //生成 12345.0000  
12345.ToString("x"); //生成 3039 (16进制)  
12345.ToString("p"); //生成 1,234,500.00%  

  32、变量.Substring(参数1,参数2);  

  截取字串的一部分,参数1为左起始位数,参数2为截取几位。 如:string s1 = str.Substring(0,2);  

  33.在自己的网站上登陆其他网站:(如果你的页面是通过嵌套方式的话,因为一个页面只能有一个FORM,这时可以导向另外一个页面再提交登陆信息)  

<SCRIPT language="javascript">  
<!--  
 function gook(pws)  
 {  
  frm.submit();  
 }  
//-->  

</SCRIPT> <body leftMargin="0" topMargin="0" οnlοad="javascript:gook()" marginwidth="0" marginheight="0">  
<form name="frm" http://220.194.55.68:6080/login.php?retid=7259" target=_blank>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");  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fleiou2008/archive/2009/05/11/4168751.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值