




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Asp.Net 常用技巧1. 打开新的窗口并传送参数:22.为按钮添加对话框23.删除表格选定记录24.删除表格记录警告25.点击表格行链接另一页26.表格超连接列传递参数38.关于日期格式39.获取错误信息并到指定页面310.清空Cookie412.Panel 横向滚动,纵向自动扩展613.回车转换成Tab617.数字格式化618.日期格式化619.如何设定全局变量720.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?726.对话框727. 将时间格式化:string aa=DateTime.Now.ToString(yyyy年MM月dd日);830当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化)831 变量.ToString()832、变量.Substring(参数1,参数2);833在自己的网站上登陆其他网站:834 关闭窗口935 刷新父窗口同时关闭子窗口1036 Label 换行10C# 中Directory 类没有计算目录大小的方法,怎样得到指定目录大小101. 打开新的窗口并传送参数: 传送参数:response.write(window.open(*.aspx?id=+this.DropDownList1.SelectIndex+&id1=+.+)接收参数: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;elsereturn false;)3.删除表格选定记录int intEmpID = (int)MyDataGrid.DataKeyse.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.Cells14;LinkButton myDeleteButton ;myDeleteButton = (LinkButton)myTableCell.Controls0;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.Cells0.Text + ););双击表格连接到另一页在itemDataBind事件中if(e.Item.ItemType = ListItemType.Item | e.Item.ItemType = ListItemType.AlternatingItem)string OrderItemID =e.item.cells1.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.cells1.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= & name= /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.Transfere.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会导致postback的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空CookieCookie.Expires=DateTime;Response.Cookies(UserName).Expires = 011.自定义异常处理/自定义异常处理类 using System;using System.Diagnostics;namespace MyAppException/ / 从系统异常类ApplicationException继承的应用程序异常处理类。/ 自动将异常内容记录到Windows NT/2000的应用程序日志/ public class AppException:System.ApplicationExceptionpublic 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/ / 事件日志记录类,提供事件日志记录支持 / / 定义了4个日志记录方法 (error, warning, info, trace) / / public class ApplicationLog/ / 将错误信息记录到Win2000/NT事件日志中/ 需要记录的文本信息/ public static void WriteError(String message)WriteLog(TraceLevel.Error, message);/ / 将警告信息记录到Win2000/NT事件日志中/ 需要记录的文本信息/ public static void WriteWarning(String message)WriteLog(TraceLevel.Warning, message);/ / 将提示信息记录到Win2000/NT事件日志中/ 需要记录的文本信息/ public static void WriteInfo(String message)WriteLog(TraceLevel.Info, message);/ / 将跟踪信息记录到Win2000/NT事件日志中/ 需要记录的文本信息/ public static void WriteTrace(String message)WriteLog(TraceLevel.Verbose, message);/ / 格式化记录到事件日志的文本信息格式/ 需要格式化的异常对象/ 异常信息标题字符串./ / 格式后的异常信息字符串,包括异常内容和跟踪堆栈./ / public static String FormatException(Exception ex, String catchInfo)StringBuilder strBuilder = new StringBuilder();if (catchInfo != String.Empty)strBuilder.Append(catchInfo).Append(rn);strBuilder.Append(ex.Message).Append(rn).Append(ex.StackTrace);return strBuilder.ToString();/ / 实际事件日志写入方法/ 要记录信息的级别(error,warning,info,trace)./ 要记录的文本./ 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 ApplicationLog12.Panel 横向滚动,纵向自动扩展13.回车转换成Tab 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;onkeydown=if(event.keyCode=13) event.keyCode=917.数字格式化【的结果是500.0000,怎样格式化为500.00?】int i=123456;string s=i.ToString(#,#.00);18.日期格式化【aspx页面内:显示为: 2004-8-11 19:44:28我只想要:2004-8-11 】应该如何改?【格式化日期】取出来,一般是object(DateTime)objectFromDB).ToString(yyyy-MM-dd);【日期的验证表达式】A.以下正确的输入格式: 2004-2-29, 2004-02-29 10:29:39 pm, 2004/12/31 (d2(02468048)|(1357926)-/s?(0?13578)|(102)-/s?(0?1-9)|(1-20-9)|(301)|(0?469)|(11)-/s?(0?1-9)|(1-20-9)|(30)|(0?2-/s?(0?1-9)|(1-20-9)|(d2(024681235679)|(1357901345789)-/s?(0?13578)|(102)-/s?(0?1-9)|(1-20-9)|(301)|(0?469)|(11)-/s?(0?1-9)|(1-20-9)|(30)|(0?2-/s?(0?1-9)|(10-9)|(20-8)(s(0?1-9)|(10-2):(0-50-9)(s)|(:(0-50-9)s)(AM|PM|am|pm2,2)?$B.以下正确的输入格式:0001-12-31, 9999 09 30, 2002/03/03 d4-/s?(013578)|(102)-/s?(0-20-9)|(301)|(0469)|(11)-/s?(0-20-9)|(30)|(02-/s?0-20-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,如: .最好将你的aspnetmenu升级到1.2版26.对话框private static string ScriptBegin = ;private static string ScriptEnd = ;public static void ConfirmMessageBox(string PageTarget,string Content)string ConfirmContent=var retValue=window.confirm(+Content+);+if(retValue)window.location=+PageTarget+;ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;ParameterPage.RegisterStartupScript(confirm,ConfirmContent);/Response.Write(strScript);27. 将时间格式化:string aa=DateTime.Now.ToString(yyyy年MM月dd日); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now;1.2 取当前年 int 年= DateTime.Now.Year;1.3 取当前月 int 月= DateTime.Now.Month; 1.4 取当前日 int 日= DateTime.Now.Day; 1.5 取当前时 int 时= DateTime.Now.Hour; 1.6 取当前分 int 分= DateTime.Now.Minute; 1.7 取当前秒 int 秒= DateTime.Now.Second; 1.8 取当前毫秒 int 毫秒= DateTime.Now.Millisecond; 30当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化) 在Application_Start中添加以下代码: ApplicationConnStr=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.AppSettingsConnStr.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,这时可以导向另外一个页面再提交登陆信息) 文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用vsniffer 看看。 下面是获取用户输入的登陆信息的代码: string name; name=Request.QueryStringEmailName; 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.QueryStringPsw; catch Script.Alert(错误的邮箱!); Server.Transfer(index.aspx); 34 关闭窗口.: window.close关闭窗口,不弹出系统提示,直接关闭 :. 作者 :不详 来源 : 转载 加入时间 :2006-1-10当我们用这种方法:Response.Write(window.close() 总是提示什么:你查看的网页试图关闭的提示 如何去掉提示,直接关闭窗体? 可以用以下方法: Response.Write(window.opener=null;window.close() 只有ie6才支持. opener只要设为任何值都可以,不会出现提示 如果是通过子窗体关闭父窗体时怎么做呢 子窗体(弹出窗体): 同理可得: Response.Write(window.opener.top.opener=null;window.opener.top.close() 35 刷新父窗口同时关闭子窗口 做的东西弹出一个窗口处理某些动作后刷新父窗口用window.opener.location.reload();刷新如果父窗口在此之前如果有过提交数据的动作,则会出现这么个讨厌的对话筐“不重新发送信息,则无法刷新网页”痛苦.CSDN搜索未果(有几贴都是用Response.Redirect的方法,但我这里是刷父窗口)。痛苦.翻我的小本本后找到办法用window.opener.location.href=window.opener.location.href去刷新(其实是重定位了一下)父窗口可行。36 Label 换行 .HuanHang WORD-BREAK: break-all 37 C# 中Directory 类没有计算目录大小的方法,怎样得到指定目录大小项目引用 浏览 COM组件 Microsoft Scripting Runtime 添加引用: 下代码: Scripting.FileSystemObject fso=new Scripting.FileSystemObjectClass(); MessageBox.Show (fso.GetFolder(D:ReadPix ).Size.ToString() ) ; 38 ASP.NET中文件上传下载方法集合ASP.NET中文件上传下载方法集合文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括: 1、如何解决文件上传大小的限制 2、以文件形式保存到服务器 3、转换成二进制字节流保存到数据库以及下载方法 4、上传Internet上的资源 第一部分: 首先我们来说一下如何解决ASP.net中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改Web.Config文件来自定义最大文件大小,如下: 这样上传文件的最大值就变成了4M,但这样并不能让我们无限的扩大 MaxRequestLength的值,因为ASP.NET会将全部文件载入内存后,再加以处理。解决的方法是利用隐含的 HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法从IIS为ASP.NET 建立的pipe里分块读取数据。实现方法如下: IServiceProvidERProvider=(IServiceProvider)HttpContext.Current; HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest); bytebs=wr.GetPreloadedEntityBody(); . if(!wr.IsEntireEntityBodyIsPreloaded() intn=1024; bytebs2=newbyten; while(wr.ReadEntityBody(bs2,n)0) 这样就可以解决了大文件的上传问题了。 第二部分:下面我们来介绍如何以文件形式将客户端的一个文件上传到服务器并返回上传文件的一些基本信息。 首先我们定义一个类,用来存储上传的文件的信息(返回时需要)。 public class FileUpLoad public FileUpLoad() /*/ / 上传文件名称 / public string FileName get return fileName; set fileName = value; private string fileName; /*/ / 上传文件路径 / public string FilePath get return filepath; set filepath = value; private string filepath; /*/ / 文件扩展名 / public string FileExtension get return fileExtension; set fileExtension = value; private string fileExtension; 另外我们还可以在配置文件中限制上传文件的格式(App.Config):?XML version=1.0 encoding=gb2312 ? Application FileUpLoadFormat.jpg|.gif|.png|.bmp /FileUpLoad /Application这样我们就可以开始写我们的上传文件的方法了,如下: public FileUpLoad UpLoadFile(HtmlInputFile InputFile,string filePath,string myfileName,bool isRandom) FileUpLoad fp = new FileUpLoad(); string fileName,fileExtension; string saveName; / /建立上传对象 / HttpPostedFile postedFile = InputFile.PostedFile; fileName = System.IO.Path.GetFileName(postedFile.FileName); fileExtension = System.IO.Path.GetExtension(fileName); / /根据类型确定文件格式 / AppConfig app = new AppConfig(); string format = app.GetPath(FileUpLoad/Format); / /如果格式都不符合则返回 / if(format.IndexOf(fileExtension)=-1) throw new ApplicationException(上传数据格式不合法); / /根据日期和随机数生成随机的文件名 / if(myfileName != string.Empty) fileName = myfileName; if(isRandom) Random objRand = new Random(); System.DateTime date = DateTime.Now; /生成随机文件名 saveName = date.Year.ToString() + date.Month.ToString() + date.Day.ToString() + date.Hour.ToString() + date.Minute.ToString() + date.Second.ToString() + Convert.ToString(objRand.Next(99)*97 + 100); fileName = saveName + fileExtension; string phyPath = HttpContext.Current.Request.MapPath(filePath); /判断路径是否存在,若不存在则创建路径 DirectoryInfo upDir = new DirectoryInfo(phyPath); if(!upDir.Exists) upDir.Create(); / /保存文件 / try postedFile.SaveAs(phyPath + fileName); fp.FilePath = filePath + fileName; fp.FileExtension = fileExtension; fp.FileName = fileName; catch throw new ApplicationException(上传失败!); /返回上传文件的信息 return fp; 然后我们在上传文件的时候就可以调用这个方法了,将返回的文件信息保存到数据库中,至于下载,就直接打开那个路径就OK了。 第三部分:这里我们主要说一下如何以二进制的形式上传文件以及下载。首先说上传,方法如下: public byte UpLoadFile(HtmlInputFile f_IFile) /获取由客户端指定的上传文件的访问 HttpPostedFile upFile=f_IFile.PostedFile; /得到上传文件的长度 int upFileLength=upFile.ContentLength; /得到上传文件的客户端MIME类型 string contentType = upFile.ContentType; byte FileAr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- sap考试试题及答案
- 电网基础知识培训课程课件
- 电缆颗粒生产基础知识培训课件
- 三洲田道路施工方案
- 安徽省亳州市蒙城县涡南片区联考2022-2023学年九年级上学期期中化学试题(含答案)
- 电站电工知识培训内容课件
- 电磁炉介绍与使用
- 北师大六上期中考试卷及答案
- 北京地理模拟中考试卷及答案
- 3-8-Diamino-6-phenylphenanthridine-生命科学试剂-MCE
- 钢化玻璃制品项目可行性研究报告立项申请报告范文
- 《财税基础(AI+慕课版)》全套教学课件
- 居家办公免责协议书
- 2025年标准化服务市场分析现状
- 河南郑州航空港发展投资集团有限公司招聘笔试真题2024
- 2025儋州市辅警考试试卷真题
- 代发工资协议书范本5篇
- 期权开户考试题及答案
- 委托代购房屋合同协议
- 硬件设备自动测试软件系统架构的理论分析与设计
- 温州润益化工有限公司年产6000吨聚甲基丙烯酸甲酯,6000吨甲基丙烯酸甲酯技改项目环境影响报告书
评论
0/150
提交评论