asp.net程序中最常用的二十四种编程代码

来源:互联网 发布:c语言 指针 csdn 编辑:程序博客网 时间:2024/04/29 21:03
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;  
 }
  

}
  

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

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

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);  
  }
  
 }
  

  


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>  

  

  


14.DataGrid超级连接列  

DataNavigateUrlField
="字段名" DataNavigateUrlFormatString="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"+""");  
 }
  
}
  

  


16.模板列  

<ASP:TEMPLATECOLUMN visible
="False" sortexpression="demo" headertext="ID">  
<ITEMTEMPLATE>  
<ASPABEL text
=’<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>’ runat="server" width="80%" id="lblColumn" />  
/ITEMTEMPLATE>  
/ASP:TEMPLATECOLUMN>  

<ASP:TEMPLATECOLUMN headertext
="选中">  
<HEADERSTYLE wrap
="False" horiz></HEADERSTYLE>  
<ITEMTEMPLATE>  
<ASP:CHECKBOX id
="chkExport" runat="server" />  
/ITEMTEMPLATE>  
<EDITITEMTEMPLATE>  
<ASP:CHECKBOX id
="chkExportON" runat="server" enabled="true" />  
/EDITITEMTEMPLATE>  
/ASP:TEMPLATECOLUMN>  

  后台代码  

protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)  
{  
 
//改变列的选定,实现全选或全不选。  
 CheckBox chkExport ;  
 
if( CheckAll.Checked)  
 
{  
  
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)  
  
{  
   chkExport 
= (CheckBox)oDataGridItem.FindControl("chkExport");  
   chkExport.Checked 
= true;  
  }
  
 }
  
 
else  
 
{  
  
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)  
  
{  
   chkExport 
= (CheckBox)oDataGridItem.FindControl("chkExport");  
   chkExport.Checked 
= false;  
  }
  
 }
  
}
  



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】点击菜单项弹出新窗口  

  在你的menuData.xml文件的菜单项中加入URLTarget
="_blank",如:  

?xml version="1.0" encoding="GB2312"?>  
<MenuData ImagesBaseURL
="images/">  
<MenuGroup>  
<MenuItem Label
="内参信息" URL="Infomation.aspx" >  
<MenuGroup ID
="BBC">  
<MenuItem Label
="公告信息" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>  
<MenuItem Label
="编制信息简报" URL="NewInfo.aspx" LeftIcon="file.gif" />  
......  

  最好将你的aspnetmenu升级到1.2版  


21.读取DataGrid控件TextBox值  

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

  


23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?  

  〖思归〗  

<asp:TemplateColumn HeaderText
="数量">  
<ItemTemplate>  
<asp:TextBox id
="ShuLiang" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>’  
.
/images/smilies/default/biggrin.gif" border=0 smilieid="3">oCal()"  
/>  

<asp:RegularExpressionValidator id
="revS" runat="server" C ErrorMessage="must be integer" Validati />  
/ItemTemplate>  
/asp:TemplateColumn>  

<asp:TemplateColumn HeaderText
="单价">  
<ItemTemplate>  
<asp:TextBox id
="DanJian" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>’  
.
/images/smilies/default/biggrin.gif" border=0 smilieid="3">oCal()"  
/>  

<asp:RegularExpressionValidator id
="revS2" runat="server" C ErrorMessage="must be numeric" Validati />  

/ItemTemplate>  
/asp:TemplateColumn>  

<asp:TemplateColumn HeaderText
="金额">  
<ItemTemplate>  
<asp:TextBox id
="JinE" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>’ />  
/ItemTemplate>  
/asp:TemplateColumn><script language="javascript">  
function DoCal()  
{  
 var e 
= event.srcElement;  
 var row 
= e.parentNode.parentNode;  
 var txts 
= row.all.tags("INPUT");  
 
if (!txts.length || txts.length < 3)  
  
return;  

 var q 
= txts[txts.length-3].value;  
 var p 
= txts[txts.length-2].value;  

 
if (isNaN(q) || isNaN(p))  
  
return;  

 q 
= parseInt(q);  
 p 
= parseFloat(p);  

 txts[txts.length
-1].value = (q * p).toFixed(2);  
}
  
/script>  

  



24.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。  

page_load  
page.smartNavigation
=true  
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机没电了没带充电器怎么办 华为p8手机后摄像头模糊的怎么办 中兴手机充电的地方坏了怎么办? 小米手机与电脑蓝牙传输失败怎么办 捡个华为收机没有账号密码怎么办 华为手机p9激活码忘了怎么办 华为畅享7plus声音小怎么办 华为畅享7plus忘记密码怎么办 华为畅享8plus卡顿怎么办 华为畅享7plus卡机怎么办 华为畅享8plus图标字小怎么办 华为畅享6反应慢发热怎么办 华为畅享5S反应迟钝怎么办 华为畅玩5x玩王者荣耀卡怎么办 不小心把手机里的照片删了怎么办 u盘文件在手机上删了怎么办 荒野行动透视挂功能加载失败怎么办 白色t桖衫被奶茶弄脏了该怎么办 游戏文件不小心解压到c盘了怎么办 装系统时c盘0mb怎么办 电脑设置的开机密码忘了怎么办 电脑开机密码忘了怎么办xp系统 我的电脑在开机时忘了密码怎么办? xp桌面我的电脑图标不见了怎么办 游戏全屏时卡了无法退到界面怎么办 u盘插电脑上提示有病毒怎么办 三星手机文件怎么删除不掉怎么办 用夜神模拟器玩第五人格太卡怎么办 雷电模拟器玩刺激战场太卡了怎么办 绝地求生刺激战场模拟器太卡怎么办 ddj sb2打碟功能没了怎么办 驼背怎么办 要能快速矫正的方法 苹果7中间的home键坏了怎么办 苹果6p的home键不管用怎么办 华为获取数据失败请检查网络怎么办 三星手机未解锁刷机变砖怎么办 手机显示充电但是充不进去怎么办 手机拔出显示无法连接移动网怎么办 手机上的音乐老是显示网络忙怎么办 华为手机账号换手机忘记密码怎么办 墨墨背单词的注册邮箱忘了怎么办