1.在做问卷调查的时候,将工号和姓名采用Des加密(其他加密方式也会产生下面的问题),然后使用Reques.QueryString[] 获取传入的参数值,这里就遇到问题了,有些用户点击按钮进去答题界面时报代码错误,定位在解密方法语句块内,开始以为是加密方法的问题,换了种方式,发现还是存在这样的问题。这里采用了比较笨但是直接有效的方法,将Reques.QueryString[] 的值显示出来分析,发现加密字符串里面的‘+’号都变成了空格,原因是浏览器接收加密后的字符串 request 请求回来时会自动解密一次,+号都变为了空格 ,处理方法是:EncodeHelper.Decrypt(Request.QueryString[0].ToString().Replace(" ","+"), "123abcde");将空格替换回来‘+’号。
2.background-image 写法Ie9以下不显示。
初始写法,在IE8里面显示不出图片,谷歌浏览器等可以:
.a
{
background-image: url(image/title.jpg);
background-repeat: no-repeat;
display: block;
}
后面百度了下,有人说将图片格式换成png等别的格式就可以了,抱着试试的心态,替换成了如下,发现背景图片可以正常显示了。
.a
{
background-image: url(image/title.png);
background-repeat: no-repeat;
display: block;
}
3、不同版本的IE浏览器对同一颜色的色块分配有差异。
为了达到公司的荷兰蓝颜色,发现IE8,IE10对颜色解析后的rgb比例有差异。例如
.d
{
filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#013B84,endColorStr=#013B84); /*IE 6 7 8*/
background: -ms-linear-gradient(top, #01458E,#01458E); /* IE 10 */
background: -webkit-gradient(linear, 0% 0%, 0% 100%,from(#01458E), to(#01458E)); /*谷歌*/
}
4.css兼容浏览器,加上 !important
#jqContent{
margin:68px auto 0px !important;
padding-top:0px;
}
5.地址栏上?传值,传值内容为中文
var formType = "接待";
"&formType="+escape(formType)+" 需要加escape对汉字进行编码后传输,
接收端再进行转码为中文:Server.UrlDecode(Request.QueryString["formType"]) 这样就可以了。
6.ASP.NET中textBox控件属性界面设置ReadOnly="true"|| enabled=“false”时,后台使用this.textbox.text读取不到文本值,要实现前端用户不可编辑,且能读取到文本框值,需要在page_load事件输入如下代码,TextBox.Attributes.Add("readonly", "readonly");
7.当界面上文本框太多时,设置鼠标滑动,界面往下走的效果(类似滚动条功能,但没有滚动条出现)
紧跟form标签
<div style="position:absolute; height:600px; overflow:scroll">
8.禁用表单上的enter按钮触发事件(例如弹出的新增界面,默认当你按enter键时,会触发表单上的保存按钮)
<form id="form1" runat="server" onkeydown="if(event.keyCode==13) return false;">
这里问题来了,界面上的textbox如果需要注册enter事件呢,例如输入物料编码联带出物料详细信息
protected void Page_Init(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(Sheets_NVTFAE_SampleForm)); // this.txtPN.Attributes.Add("onblur", "getMaterialInfo();"); this.txtPN.Attributes.Add("onkeydown", "if(event.keyCode==13 ){getMaterialInfo();}"); //为文本框添加enter事件 getMaterialInfo()为界面上的JS函数 } .CS文件中 [AjaxPro.AjaxMethod] public string GetMaterialInfo(string PN) { StringBuilder sb = new StringBuilder(); string sql = string.Format("SELECT 物料编码,物料描述,规格,基本计量单位 FROM view_Nvt_MaterielNo where 物料编码 = '{0}'", PN); DataTable dt = DB.ExeSQL(sql); string sqlGetFAENo = string.Format(@"select FAE单号 from H3Cloud.dbo.I_NVT办公流程_NVTFAE审核流程 where 供应商PN ='{0}'", PN); DataTable dtFAENo = DB.ExeSQL(sqlGetFAENo); if (dt.Rows.Count > 0) { sb.AppendFormat("{0}@", dt.Rows[0][0].ToString()); sb.AppendFormat("{0}@", dt.Rows[0][1].ToString()); sb.AppendFormat("{0}@", dt.Rows[0][2].ToString()); sb.AppendFormat("{0}@", dt.Rows[0][3].ToString()); if (dtFAENo != null && dtFAENo.Rows.Count > 0) { sb.AppendFormat("{0}@", dtFAENo.Rows[0][0].ToString()); } } return sb.ToString(); } ASPX表单文件 // 通过物料号带出物料信息 function getMaterialInfo() { var pn = ""; var txtPN = document.getElementById("txtPN"); var txtPNName = document.getElementById("txtPNName"); var txtSpecification = document.getElementById("txtSpecification"); var txtUnit = document.getElementById("txtUnit"); var txtFAENo = document.getElementById("txtFAENo"); if (txtPN != null) { pn = txtPN.value; if(pn != ""){ var oAjax = Sheets_NVTFAE_SampleForm.GetMaterialInfo(pn); if(oAjax.error == null){ var str = oAjax.value; if(str != ""){ var arr = str.split("@"); txtPN.value = arr[0]; txtPNName.value = arr[1]; txtSpecification.value = arr[2]; txtUnit.value = arr[3]; txtFAENo.value = arr[4]; } else{ txtPNName.value = ""; txtSpecification.value = ""; txtUnit.value = ""; txtFAENo.value=""; } } else{ alert(oAjax.error.Message); } } } }
9.IDV内设置滚动条
DIV出现横竖滚动条
<div style = "overflow-y: scroll; 1400px ; height:600px"> overflow-y: scroll 竖向滚动条
只有竖向滚动条,没有横向滚动条
<DIV style="OVERFLOW-Y: scroll; OVERFLOW-X:hidden; 685px; height: 180px"><DIV>