1.jquery1.3以后的版本,如果要获取JSON值,json格式必须是标准格式的:如:{"key":"value","key2":"value2"}
2.mysql存储过程参数名称与列明不能相同,如果相同,查询或者更新的数据会有错误
3.在引用jquery.mcdropdown.js作下拉列表的时候,如果提示“a is undefined”说明下拉列表中没有值或者下拉列表中的内容不正确;
4.在IE6的JS不认识undefined,所以为了兼容,最好不要再JS中添加判断是否为undefined。
5.在IE6下要保证不能有任何的JS错误,报错JS函数不存在的错误,否则其他的函数可能就不能正常执行。
6.在用代码生成器自动生成的model中,存在int?这样的数据类型。在用反射方法TableToList转换时候会出错,所以需要将model中的所有类型后代?的都去掉。
7.DataTime类型的数据得到的DbType总是Int32,修改了HtDbFactory中的CreateParameter方法
public DbParameter CreateParameter(string key, object value)
{
DbParameter p = CreateParameter();
p.ParameterName = key;
// p.Value = value;
//valus是数据类型,他的值应该赋给p.DbType,否则得到的p.DbType为int32.(author:ljf)
p.DbType =(DbType)value;
return p;
}
8.调用弹出层页面的函数,弹出两个层,其中一个是Null。
解决方案:
一.frcn.js,main.js相关的内容要注释掉
二,如果1还不行,看是不是有两个页面调用了同一个名字的函数。个人用户和平台用户密码修改的功能,在他们各自的页面都写了SetPwdInit函数,结果就出现两个,这种情况修改其中一个的函数名字。
9.在js中用split,substring,lastIndexOf等处理字符串的函数时,如果提示这些函数报错,说明提交的字符串有问题,需要将要处理的字符串加上toString(),这样就能正常执行了。
10.vs.net可以调试JS,在要调试的js函数中添加debugger;然后在vs.net中调试,运行到这个词时会停止。FF浏览器中有firedebug,可以在这里面调试。
11.查询用户列表时候,如果其他一切都正常,但是用分页查询时报错,这就说明分页存储过程sp_ProPageResult的字段sCondition 字段不够长,需要调整字段的大小。
12.位运算。位运算通常用在权限的加减。比如一条消息,可以是接收方已读(1),接受方已删(2),当他们需要组合时,需要对权限树按位或(|)运算,1|2=3;在接收方要查询自己的消息时,这时候就要排除已经删除的消息,这就需要对权限数进行按位与(&)运算。当3&2==2,得到的结果是已经删除的消息!=2就是没有删除的消息。这种方式对权限的组合是很好的方式。
13.从一个网站进入另个网站时,如果直接用window.open('/Flex/Index', '_blank'),这个时候浏览器会阻止弹出窗口,他们认为这是广告。所以要解决这个办法,只有在进入前弹出一个提示框,要用户点击后再进入。MessageConfirm("Confirm", "Are You Confirm To enter Main Page?", "window.open('/Flex/Index', '_blank')");
14.如果页面在异步加载内容时被遮盖住的时候,在执行完异步后,调用top.ifrLoad();
15.对于win2003服务器上未安装.net mvc框架时,要部署mvc项目时,要把本地文件System.Web.Mvc.dll,放入bin文件夹中。
16.mysql编码问题,当在查询时,将日期转换为字符串之后(date_format(datetime, '%Y-%m-%d')),前台显示的数据是一个看不懂的字符串时,这是因为编码有问题,这是就需要转换(Convert(date_format(datetime, '%Y-%m-%d') using utf8) as datetime)
17.htmlStr = '
这样就导致页面中其他的JS不能正常运行;所以要去掉注释符;
24.mysql查询的数据在DataSet里面显示System.byte[],原因是两个不同类型的值组合在一起产生的这种问题,例如:查询组合字段
“CASE u.`first_mileage` WHEN 0 THEN '' ELSE CONCAT(u.`first_mileage`,'Km') END AS first_mileage”。这种情况下会产生这种问题。
解决办法:System.Text.Encoding.Default.GetString((byte[])dr["first_mileage"]);,用这个方法就能得到我们想要的数据;
25:asp.net+oracle+iis运行程序时候报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。
原因:NTFS权限问题,在ORACLE9I时总是遇到
解决方法:将oracle客户端装到NTFS格式的磁盘上。
1、以管理员的用户登录;
2、找到ORACLE_HOME文件夹(我的是C:\Ora10InstantClient),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3、重新启动计算机,让权限设置生效(请注意,这一步很重要);
4、登录后运行asp.net应用,正常取得Oracle数据库的数据。
26.当你使用MySQL concat( )调用构建一个字符串输出时,你必须小心空值,它将你的整个字符串转为空值,象下面这样的代码就很危险:
select someColumn from someTable into myVar where.
concat('better hope myVar is not null', myVar);
27.asp.net mono不支持在特定IE下执行的代码注释,如下所示:
解决办法:
<% if (Request.Browser.Browser.Contains("IE") && float.Parse(Request.Browser.Version) < 7) { %>
<% } %>
28.两个弹出窗口都是iframe页面,最后弹出的窗口在执行完成后要设置上一个弹出窗口的下拉列表的值,这时获取上一个窗口的下拉列表对象的方法是:$(top.window.frames[1].document).find("#owner")。例如:
var str = "";
$(top.window.frames[1].document).find("#owner").append(str);
$(top.window.frames[1].document).find("#owner").attr("value", data.userid);
29.使用jquery easyui combotree遇到的问题;(原因:服务器对于空的POST认为是攻击,所以要用GET方式请求)
1.请求不到内容,方法如下:
$('#selRole').combotree({url: '/RoleManagement/GetRoleListJson?ID=' + Id,valueField: 'id',textField: 'text'});
在window2003,iis上用此方法能正常请求到输入,但是放到linux,jws服务器上却请求不到数据,但是在浏览器中直接输入请求地址:/RoleManagement/GetRoleListJson能看到数据;
解决办法:改变请求方式,默认是POST,改为GET,$('#selRole').combotree({url: '/RoleManagement/GetRoleListJson?ID=' + Id,method:'get',valueField: 'id',textField: 'text'});
2.reload方法在IE8下请求的数据一直是从缓存中取的,导致有新的数据时无法更新。
请求地址/RoleManagement/GetRoleListJson,解决办法,在GetRoleListJson方法中在输出Response.Write(sb.ToString())前面加Response.Cache.SetNoStore()清除缓存。
30.easyui datagrid高度自适应问题
在iframe导入的页面里面也采用layout,然后单独把表格放在center区域就可以了