木子屋 Dnawo's BLOG

分类:Web编程

共 939 篇

巧用escape解决ASP.NET中URL传参乱码问题

在test.aspx中,只要获取title参数的值并显示出来即可,本来用Request就可解决的问题却因链接所处页面的编码不同而变得复杂起来: 当链接所处的页面是用GB2312编码时,如果test.aspx也是GB2312则获取的参数值不乱码,否则乱码; 当链接所处的页面是用UTF-8编码时,如果test.aspx也是UTF-8则获取的参数值不乱码,否则乱码; gb.htm: utf8.htm: test.aspx.cs: 有没办法让test.aspx不论URL中的参数以何种方式编码都能正常的获取显示呢?通过配置web.config的都只会顾此失彼,不能完美的解决我们的问题。最终,在老农的提示下使用JS的escape问题得以完美解决:…

理解ASP.NET中的三层结构

一、三层体系架构 1.表示层(USL):主要表示WEB方式,也可以表示成WINFORM方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。 2.业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。 3.数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。 二、具体区分 1.表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。…

GridView无代码更新、删除常见错误

一、未指定UpdateCommand/DeleteCommand导致更新/删除失败 错误信息: 除非指定了 UpdateCommand,否则数据源“SqlDataSource1”不支持更新操作。 除非指定了 DeleteCommand,否则数据源“SqlDataSource1”不支持删除操作。 错误分析: 配置数据源时需要没有同时生成Insert、Update和Delete语句,如下图示: 二、未声明变量导致删除失败 错误信息: 必须声明变量 '@id' 错误分析: 我在机子上测试发现更新没有问题,就是在删除时会出现这样的错误。网上查找了一翻,原来是没有给GridView的DataKeyNames属性赋值,将主键字段设置为DataKeyNames的值即可。

妙用"1=1"和"1<>1"

在多条件动态查询过程中我们常常得根据选择条件动态的生成SQL查询语句,假设我们得根据选择的班级和姓名信息动态的查询学生信息,下边提供了三种生成SQL查询语句的方法: 方法一: 方法二: 方法三: 我们来比较下三种方法 方法一:不会出错,代码多; 方法二:在user_name和user_class都为空的情况下会出现"select * from student where"这样的错误的SQL查询语句,代码和方法一样多; 方法三:不会出错,代码最少; 显然方法三是最可选的方法,最令人叫绝的是它用了"1=1",既减少了代码,又避免了出现错误的SQL查询语句! 关于"1=1(永真)"和"11(永假)"网上举的比较多的例子就是在拷贝表和复制表结构中使用,代码如下:…

认识ASP.NET配置文件Web.config

一、认识Web.config文件 Web.config文件是一个XML文本文件,它用来储存ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 在运行时对Web.config文件的修改不需要重启服务就可以生效(注: 节例外)。当然Web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。…

如何让HyperLinkField的链接带多个参数

很多时候一个链接通常带有好几个参数,形如:http://www.mzwu.com/article.asp?u_id=1&id=1197,怎么让HyperLinkField的链接也带多个参数呢?很简单,只须在其DataNavigateUrlFields属性中设置多个字段(用逗号分隔),然后在属性DataNavigateUrlFormatString中使用{0}、{1}、{2}等来表示字段值即可。

GridView中数据格式化

为什么设置了DataFormatString没有效果? 不要忽略BoundField的两个重要属性HtmlEncode和ApplyFormatInEditMode。GridView使用的BoundField与DataGrid使用BoundColumn不同,BounField提供了一个HtmlEncode属性,提供是否对数据进行HTML编码,降低了潜在的Html&Script嵌入攻击,默认该值是启用的,如果要使用格式化输出,应该关闭此属性; 默认情况下,只有当数据绑定控件处于只读模式时,格式化字符串才能应用到字段值。当数据绑定控件处于编辑模式时,若要将格式化字符串应用到显示的值,应该同时将ApplyFormatInEditMode属性设置为true。 DataFormatString的格式…

为GridView"删除"列添加确认对话框

最简单的方法是将删除按钮的DeleteText属性设为: 如果把CommandField的ButtonType属性设置成Button的话,这段代码就失效了。我想了下,可以通过将其转换为模板列的方式来解决:先将该字段转换成模板,然后编辑这个模板列,选中用于删除的Button,将其onClientClick属性设为"return confirm('您确认删除要删除么?')"即可。

递归实例:等差数列和等比数列通项公式

<% '================================================== '函数名:DengCha '作 用:等差数列公式 '参 数: a1 ------等差数列第1项值 '参 数: d ------公差 '参 数:n ------第n项 '返回值:等差数列第n项的值 '================================================== Function DengCha(a1,d,n) If Not(IsNumeric(a1) or IsNumeric(d) or IsNumeric(n) or n<1…

Filter与updatebatch混合使用实现批量更新

/*******部分代码*******/ /*******idArr()和codeArr()为两个数组,其中,idArr()为filter数据过滤条件,codeArr()作为更新数据**********/ ....... dim CRs,sql,FStr sql="" conn.begintrans set CRs=server.CreateObject("adodb.recordset") CRs.ActiveConnection=conn CRs.CursorType=1 CRs.LockType=3 CRs.Source="select * from MB_DCManage" CRs.Open…