博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET项目申报系统-4.28~5.2总结
阅读量:5343 次
发布时间:2019-06-15

本文共 5101 字,大约阅读时间需要 17 分钟。

4.28

FileUpload不能用脚本触发click事件,是基于安全的考虑。搞了这么久的newsEdit页面报废了。以后尽量还是从网上找一些现成的代码,然后再弄吧。不是现成的代码,可能做一段时间后发现这个方法在实现上不可行。

News类中有好多string类型的变量,NewsAttach1到NewsAttach15,在程序中需要通过数字(1~15)使用这些变量的值或给这些变量赋值,

第一次做的尝试是GetAttach(News news,int n,out string newsattach),在函数中给newsattach赋予news.NewsAttach(一个数字),
不可行,因为C#中string是引用类型,但是进行赋值的时候,会在托管堆中重新分配一个新的空间存放新值。

 

ckeditor使用的问题------

配置:
1、Web中的bin文件夹下添加CKEditor.NET.dll,也可以通过右击Web网站解决方案,添加引用,选择它。
2、将“\_Samples”文件夹下的“ckeditor”文件夹,添加到网站根目录。
可以精简里面的内容,比如,lang下只保留en.js zh.js zh-cn.js,skins下只保留v2文件夹。
3、在config.js里面进行个性化配置

config.skin = 'v2';config.resize_enabled = false;config.toolbar =[['Bold', 'Italic', 'Underline', 'Strike', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink'],['Cut', 'Copy', 'Paste', '-', 'Find', 'Replace'],['Styles', 'Format', 'Font', 'FontSize', '-', 'TextColor', 'BGColor']]; config.font_names='宋体/宋体;黑体/黑体;仿宋/仿宋_GB2312;楷体/楷体_GB2312;隶书/隶书;幼圆/幼圆;微软雅黑/微软雅黑;';

4、防止出现“从客户端(editor="<p>This is some <...")中检测到有潜在危险的 Request.Form 值。”这种问题,需要

1)在使用ckeditor插件的页面上方加入这个属性,<%@ Page ValidateRequest="false" %>
2)在webconfig里面加入<httpRuntime requestValidationMode="2.0"/>(VS2010使用asp.net 4.0,请求验证处理机制会使第一条失效,所以还要进行这个修改)

ASP.net前台:

head中body中

JavaScript获取:

function beforePost() {var obj = document.getElementById("TextBoxNewsTitle");if (obj.value.length == 0) {alert("新闻标题不能为空!");obj.focus();return false;}//editor.document.getBody().getText()取得纯文本//editor.document.getBody().getHtml()取得html文本if (editor.document.getBody().getText() == "") {alert("新闻内容不能为空!");return false;}return true;}

ASP.net后台:

取得html文本:直接使用news.NewsContent=TextBoxNewsContent.Text;
将html文本赋给textbox也直接使用TextBoxNewsContent.Text=news.NewsContent;

 

4.29

在aspx.cs的代码中,可以直接使用Server.MapPath函数,但是在.cs的类文件中,不能如此使用,应使用System.Web.HttpContext.Current.Server.MapPath,aspx页面后台代码默认添加了这个httpcontext.current引用。

mysql中日期函数year(NewsDate)返回年份,month(NewsDate)返回月份,dayofmonth(NewsDate)返回月份中日数。

mysql中比较datetime和另一个日期是否是同一天,用where to_days('1989-12-12')=to_days(NewsDate)

原本ajaxcontroltoolkit中的日历控件是英文的,但是在ToolkitScriptManager控件中加入EnableScriptGlobalization= "true"后,就可以按照windows系统的语言版本进行调整,中文版windows就是中文的日历。

尽量多的代码重用,这样再修改的时候,就可以仅修改一个地方,而不用每一处都进行修改。页面的重用,相同代码放到函数里面。

有些时候,遇到的问题,不好解决,可以先放放,像考试中遇到难题留到最后一样。到了后来,可能自己的能力提供了,问题就迎刃而解了。这次项目之前遗留的问题都记录下来了,最后发现好多问题后来都解决了。

在head里面经常用到的css和js的引用,注意script引用有开始和结束标签<script></script>,写成<script />这种形式会使页面在vs2010里或在浏览器调试的时候不显示。

<link rel="Stylesheet" href="http://www.cnblogs.com/Styles/table.css" type="text/css"/>
<script type="text/javascript" src="http://www.cnblogs.com/Scripts/projinfo.js"></script>

web.config中配置session模式(mode)默认情况下是InProc,也就是将Session保存在进程内(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),这个进程不稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。

1、服务器内存使用超过一定的限度,配置文件中processModel标签的memoryLimit属性
2、Global.asax或者Web.config文件被更改
3、Bin文件夹中的Web程序(DLL)被修改
4、杀毒软件扫描了一些.config文件。。。等。。。
以上情况下,保存session的进程会重启,session丢失。我遇到的情况是,project中upload附件上传页面,删除最后一个附件后,(估计是因为同时删除了文件夹),session丢失。
所以改成<sessionState mode="StateServer" timeout="30"/>保存到“ASP.NET 状态服务”这个服务中。
需要在管理->服务中手动开启这个服务。

定期备份自己的工程,以防vss上的版本被较旧的文件覆盖或被被别人串改。

css中设置背景图片的语句:background-image:url(../Images/home/top_dh01.gif) ,图片url是相对css文件的相对地址,仅能用相对路径!!

 

4.30

tinyMCE使用的问题(比ckeditor加载速度快很多、功能稍弱)------

配置:

1、在官网下载tinymce最新版,下载tinymce_lang_pack.zip(汉语支持包),解压后将其中的内容与tinymce中的内容进行合并,并放到网站Scripts/目录下
2、将tiny_mce\themes\advanced\skins\default\content.css中的第一行改成
body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:14px; margin:8px;},

使字体由10px改成14px,解决字体默认太小的问题。

ASP前台:

JavaScript:

后台:

直接使用TextBoxNewsContent.Text来获取,同ckeditor一样。

 

5.1

以后设计数据库表格的时候,尽量考虑全面,宁愿多存一些不太重要的信息,也不要保存的信息过少。

比如DownloadFile表格,不能只有一个id和filename,还应该有发布者、发布日期等等附属信息,以便实现用户不能删除不是自己发布的文件。

数据库中存东西,尽量都存主键,News信息表中NewsEditor如果存的是新闻发布者的名字,但是该用户改名了,就会使它无法修改自己的News;而且,其他用户只要将自己的UsrName改成其他用户的名字,就可以随意篡改别人的News。存string无非就是为了后台代码好写,直接单表查询并且写到页面的控件上就行了,但是这会带来逻辑错误,千万不可行。

GridView隐藏某一列,这一列可以用来存这一行信息的id。更好的实现方式是设置GridView的DataKeyNames属性,然后在后台用DataKeys获取保存的值

GridViewNewsManage.DataSource = newsManage.GetList("NewsType=0");GridViewNewsManage.DataBind();GridViewNewsManage.Columns[6].Visible = false;

 

GridView的模版列中加入按钮,触发按钮事件后,如何获取该行的某个值?

前台:

后台:

protected void Button1_Click(object sender, EventArgs e) { Button btn = sender as Button; GridViewRow row = btn.Parent.Parent as GridViewRow; string a = row.Cells[0].ToString();//获得第一个单元格的值 string b = this.GridView1.DataKeys[row.DataItemIndex][0].ToString();//获得DataKeys的值 }

5.2

date_format(NewsDate,'%Y-%m-%d') mysql格式化输出函数 %Y年份,%m月份,%d月中的天数,使用:

select date_format(NewsDate,'%Y-%m-%d') from news where ...

以下css样式针对class属性为headline2的链接

.headline2 a {
color: rgb(255, 255, 255); line-height: 135%; font-size: 14px; font-weight: bold; text-decoration: none;}.headline2 a:hover {
color: rgb(255, 204, 0); text-decoration: underline;}

以下css样式设置图片的功能类似于button,鼠标移动上去会显示“手型”

GridView里设置 AllowPaging="true" PageSize="8",再在GridView中加入这个属性<PagerSettings Visible="false"/>,就可以分页但是不显示下面的跳转到第几页的按钮

script紧跟元素后面,因为js是按照从上到下的顺序执行的,如果放在head中会获取不到label这个元素(还没有渲染)

转载于:https://www.cnblogs.com/particle/archive/2012/05/03/2480709.html

你可能感兴趣的文章
java中遍历属性字段及值(常见方法)
查看>>
YUI3自动加载树实现
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
malloc() & free()
查看>>
Linux 的 date 日期的使用
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
线程安全问题
查看>>
linux的子进程调用exec( )系列函数
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>