asp.net 个人项目疑难总结
学asp.net不是很久,做了一个 OA 的项目,遇到很多问题,在此Mark一下,这些都是项目中经常遇到的问题,我搜集网上的解决方案,做了一个小的总结.也让遇到同样问题的IT学子有些帮助.
注: 人人为我,我为人人!
1、解决了 framework2.0 架构下 子页 内容 引用updatepanel 导致 ajax控件 警告为:未知元素,代码排版紊乱。(framework3.5 无此问题 ) 方法为:在web.config 下 <pages><controls><add tagPrefix="ajax" /> tagprefix 属性 改为ajax ,页面内所有ajax 控件 的标签都由 <asp/>改为<ajax/>
2、解决了 updatepanel 里面点击下载 弹出乱码框 问题 . 方法: 点击跳转到另一页面执行下载操作.
3、解决了 点击 提交按钮 更新页面后滚动条默认为: 记住滚动条位置, 方法: 在web.config 下 <pages maintainScrollPositionOnPostBack="true"> 添加maintainScrollPositionOnPostBack="true" 的属性 也可以在母板页 的load 方法里添加 page.maintainScrollPositionOnPostBack="true"; 但是跳转页面不起作用,要用js 控制,比较麻烦.大概方法 是把 上个页面的滚动条位置存入session.
4、解决了 session 丢失的问题,session 丢失在对文件物理操作时比较容易出现,因为默认session 是跟随一个进程 **.exe 执行的,那个进程重启,就容易丢失,还有很多原因引起,最好google 一下. 方法: 在web.config 下 <system.web> <sessionState mode="StateServer" cookieless="false" timeout="20" />添加一个<sessionState>标签,默认没有此属性
mode 里面有3个条件.但是项目执行 时要 先启动 windows的 asp.net state 服务.
5、解决了 引用js文件 或者 地址栏传参如果有中文 ,显示为乱码的问题. 方法: 在web.config <system.web><globalization requestEncoding="gbk" responseEncoding="gbk"/>添加全局属性响应和请求都为 "gbk".
6、添加了 服务器控件主题的 样式 .服务器控件直接 引用 skinid 导入样式.和cssclass 差不多,但是skinid 更适合服务器控件.具体使用方法,可以去 ms官方下载一个 demo. 全局引用一个默认主题要在在web.config 下 <pages theme="SkinFile" > 添加 theme 属性,skinfile为样式文件的名称.
7、解决了 gridview 无法设置行内边框颜色的问题, 好似默认白色, 方法: gridview1.Attributes.Add("bordercolor", "#7fc2ff");
相关文档:
之前遇到一个很郁闷的问题, 大概就是dagagrid里应用了一个行是checkbox, 结果死活点check all, submit以后 Response.Form里的id和 FindControl里找到的不一致了.
结论是:
datagrid 绑定以后再也不要动了! 否则 前台id 再postback 的时候是不一致的 ......
使用URL重写可以实现用http://www.mzwu.com/d100.aspx类似的地址来访问http://www.mzwu.com
/default.aspx?id=100,这样的好处非常多:一是隐藏了真实路径,提高应用程序的安全性;二是有利于搜索引擎收录;三是便于记忆。下边
我们来看看在ASP.NET中怎么实现URL重写。
1.下载URLRewriter.dll
放到Bin文件夹中。
2.Web ......
asp.net 未将对象引用设置到对象的实例。
经常碰到这个问题。问题的原因大概有以下几点。
1、ViewState 对象为Null。
2、DateSet 空。
3、sql语句或Datebase的原因导致DataReader空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new初始化对象。
6、Session对象为空。
7、对控件赋文本值时,值不存在
8、使用 ......
在项目中我要用到修改密码功能,修改密码页我是用模式对话框的形式弹出来的,当我按正常情况提交数据时,发现它会弹出一个新的窗口来显示修改成功信息,我想提交数据而不打开新窗口,
我的解决办法就是在head标签中加上base标签让target="_self",之前我想得有点复杂,想给它一个固定的alert,当成功修改时才显示 ......