Asp.Net的几点总结

 
一、 machine.config 无法加载的解决办法
1.      有时做开发调试项目时会遇到这样的一个提示:
分析器错误信息: 访问被拒绝“ FreeTextBox ”。
源错误: <add assembly=”*”/>
源文件: C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG/machine.config
这是因为启用了 Indexing Service 服务的原因。遇到这种错误以后并不是程序有问题,而且只有重启系统才能避免这个提示的出现,但是重启以后过一段时间,这种提示又出现了。
解决的方法很简单,就是将这个服务禁用,不要让它启动。具体的操作步骤如下:
(1).    右击“我的电脑” - 选择“管理” - “服务和应用程序” - “服务”,找到“ Indexing Service 服务。
(2.).   右击它选择“属性”,在“常规”选项卡里把“启动类型”设置为“禁用”,然后点击“确定”就 OK 了,以后肯定不会出现这样的错误提示了。
2.          Index Service 服务简介
搜索的索引服务
索引服务
可以使用 索引服务 对磁盘上的文档和文档属性进行索引,并将该信息存储在目录中。还可以使用 索引服务 通过 开始 菜单上的 搜索 或通过 Web 浏览器来搜索文档。
使用索引服务
索引服务可以创建本地硬盘驱动器以及共享网络驱动器上的文档的内容和属性索引。还可以控制包含在索引中的信息。索引服务可以连续运行并且几乎不需要维护。
不过会占用大量内存。
二、 DataGrid 对象删除数据时的分页代码
原来在做类似 DataGrid DataList 对象的删除功能时,在删除了指定数据后便直接执行绑定程序,其实这样做出的程序很不完善,当数据的条数不够一页时不会出现问题,一旦数据多于一页时潜在的问题就出来了,因为在删除时还需要考虑分页的问题。
在以下 3 个条件同满足时就会出现:
(1).   当前的数据不止一页。
(2.).  执行删除操作时不在第 0 页(即不是第一页)。
(3).   当前要删除的数据在本页只有一条。
这时 DataGrid 在重新绑定数据时会提示当前页没有数据可以显示的错误,需要把 DataGrid CurrentPage 向前移一页。具体可以在删除语句后加以下程序:
if (dgGraduateList.CurrentPageIndex  ==  dgGraduateList.PageCount  - 1
                                               
&&  dgGraduateList.CurrentPageIndex  !=   0   &&  dgGraduateList.Items.Count  %  dgGraduateList.PageSize  ==   1 )
                                     
{
                                               dgGraduateList.CurrentPageIndex 
-= 1;   //向前翻一页
                                     }

删除数据时的几点注意:
1.          最好将删除语句放在 DeleteCommand 事件中。
2.          如果将删除语句放在了 ItemCommand 事件中,则必须将删除语句放在
If ( if  (e.CommandName  == " Delete " )) 
{
}

语句之内,因为执行分页事件时,仍会执行ItemCommand事件。
三、 ViewState 的应用
所谓有时我们需要在当前页面中保存一个长期使用的变量, .net 给提供了很多保存的方法,而 ViewState 就是一种很好的实现方法。当然也可以用 Sessiion Hidden 来存放。而如果用 Session ,则需要占用服务器端的资源。 Hidden 不占服务器资源,但 ViewState Hidden 要好的一点便加密。 ViewState 可以方便的设置校验和加密,只要你把可以序列化的对象存进去,它就能够自动序列化并输出到 HTML 。总之, ViewState 是保存跨页面生命周期有关变量的最好容器,但它又不能够跨出页面范围称为会话变量的容器(这需要 Sission 来实现)。
ViewState 的特点可以概述以下几点:
(1).  它可以永久的保存某一变量而永不过期。
(2).    它不占用服务器的资源,而是存在于输出页面(客户端)的一个隐藏域 <input type="hidden" name="__VIEWSTATE" value=""> 中。
(3).    ViewState 并不是能存储所有的 .net 类型数据 , 它仅仅支持 String Integer Boolean Array ArrayList Hashtable 以及自定义的一些类型。
(4).    viewstate 的安全性方面 asp.net 提供了两种保护方式。一种是防篡改,在页面顶部加入以下代码: Page EnableViewStateMAC=true ;另一种是加密,在 machine.config 里设置一下 machineKey validation="3DES" 即可实现用 des 加密 viewstate 了。
ViewState 的用法:
ViewState[“ID”]  =  Request.QeuryString[“ID”].ToString();
string  id  =  ViewState[“ID”].ToString();
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值