一、
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 浏览器来搜索文档。
使用索引服务
索引服务可以创建本地硬盘驱动器以及共享网络驱动器上的文档的内容和属性索引。还可以控制包含在索引中的信息。索引服务可以连续运行并且几乎不需要维护。
不过会占用大量内存。
可以使用 “ 索引服务 ” 对磁盘上的文档和文档属性进行索引,并将该信息存储在目录中。还可以使用 “ 索引服务 ” 通过 “ 开始 ” 菜单上的 “ 搜索 ” 或通过 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; //向前翻一页
}
&& dgGraduateList.CurrentPageIndex != 0 && dgGraduateList.Items.Count % dgGraduateList.PageSize == 1 )
... {
dgGraduateList.CurrentPageIndex -= 1; //向前翻一页
}
1.
最好将删除语句放在
DeleteCommand
事件中。
2.
如果将删除语句放在了
ItemCommand
事件中,则必须将删除语句放在
If (
if
(e.CommandName
==
"
Delete
"
))
... {
}
... {
}
三、
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();
string id = ViewState[“ID”].ToString();