文章标签 ‘原创’

项目中需要根据不同的属性设置EasyUI的Tab组件的某页的动态关闭和显示,tab标签的代码如下: <div id=’tt’ class="easyui-tabs" cache="false"> <div title=’基本信息’></div> <div title=’联系方式’></div> <div id=’product’ title=’产品’></div> </div> 需要根据用户的类型来显示和隐藏产品tab页,开始以为直接根据状态直接$(‘#product’).hide();就可以了,可是试过后发现不行,于是查看了easyUI的tab组件的文档,发现有close方法可以关闭tab页,于是改写成: if(data.state==’1′) $(‘#tt’).tabs(‘close’,'产品’); 可是,如果data.state==2则需要打开tabs可是没有open方法,tab已经被关闭了,没办法只好创建一个了,代码如下: if ($(‘#tt’).tabs(‘exists’, title)) { //$(‘#tt’).tabs(‘select’, title); reloadTab(title,url); } else { $(‘#tt’).tabs(‘add’, { title: title, href:url }); }

2012年3月19日17:15 评论关闭

最近项目中需要跨域调用其他项目的数据,其他项目也是使用的EasyUI的datagrid组件,开始以为直接在datagrid的url属性定义为其他项目的url地址即可,可是测试下发现的确是返回了json数据但是json数据提示“invalid label” 错误,网上搜索了下错误解决办法,参考 “JavaScript处理Json的invalid label错误解决办法“的方法利用datagrid的loadData方法加载并转换了json还是提示上述错误,感觉原因不在格式问题。 搜索了下JavaScript跨域调用的文章“JavaScript跨域访问问题解决方法”得到启发,发现原来是因为easyUI使用的是JQuery的异步方法加载数据,应该遵循JQuery的跨域访问规则,也就是上述文章中提到的url中需要加入jsoncallback=?回调函数参数,并且返回的json的格式必须修改为:回调函数名(json数据),而现在返回的数据只是json格式的数据没有回调函数名,自然提示格式错误,于是修改了ASP.NET MVC自定义的JsonResult类,具体如何编写自定义的JsonResult类见:自定义ASP.NET MVC JsonResult序列化结果, 代码如下: public class CustomJsonResult:JsonResult { public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } HttpResponseBase response = context.HttpContext.Response; if (!String.IsNullOrEmpty(ContentType)) { response.ContentType = ContentType; } else { response.ContentType = "application/json"; } if (ContentEncoding != null) { response.ContentEncoding = ContentEncoding; } [...]

2012年3月14日15:03 评论关闭

需要修改web.config的数据库连接字符串端口,原以为直接IP地址加“:”然后端口号,就搞定了,可是怎么也连接不上,原来是需要写成Server=IP地址,端口号的格式,于是又去博客园搜了下相关文章,发现设置数据库连接还有很多参数,引用如下: 先来看一下默认的连接SQL Server数据库配置 <connectionStrings> <add name=”LocalSQLServer” connectionString=”Data Source=.\SQLExpress;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true” providerName=”System.Data.SQLClient” /> </connectionStrings> SqlConnectionStringBuilder实例化时需要使用connectionString。 如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString); 一、Data Source SqlConnectionStringBuilder的DataSource属性,对应 connectionString中的Data Source,“Data Source”可以由下列字符串代替:“Server”,“Address”,“Addr”和“Network Address”。 Data Source=.\SQLExpress也可以写成这样Data Source=(local)\SQLExpress。 二、Integrated Security SqlConnectionStringBuilder 的 IntegratedSecurity 属性,对应 connectionString 中的I ntegrated Security,“Integrated Security”可以写成“trusted_connection”。 为 True 时,使用当前的 Windows 帐户凭据进行身份验证,为 False 时,需要在连接中指定用户 ID 和密码。可识别的值为 True、False、Yes、No 以及与 True 等效的 SSPI。 如果没有些则必须写上 [...]

2012年2月8日09:44 评论关闭

今天遇到个比较郁闷的问题, EasyUI的numberbox计算值总也设置不上 代码如下: $(‘#number,#price’).keyup(function(){ $(‘#total’).numberbox(‘setValue’,$(‘#number’).numberbox(‘getValue’)*1*$(‘#price’).numberbox(‘getValue’)*1); }); 只是一个简单的总金额=数量*单价的问题,居然计算不出正确的值,开始以为是keyup事件的写法问题,结果发现原来是numberbox的取值问题,代码修改如下: $(‘#number,#price’).keyup(function(){ $(‘#total’).numberbox(‘setValue’,$(‘#number’).val()*1*$(‘#price’).val()*1); }); 问题解决!

2012年2月3日17:16 评论关闭

最近项目需要用到页面编辑器,于是沿用以前项目的代码,使用fckeditor编辑器,具体整合方法见[原创]JQuery的FckEditor插件使用教程,按上述方法整合后的代码如下: $(function(){ //初始化FCKEditor $.fck.config = { path: ‘../../FCKeditor/’, width: 700, height: 300, toolbar: ‘Basic’ }; $(‘textarea#Meeting_Content’).fck(); }); 但是编辑数据时编辑器显示不出值,分析原因可能是EasyUI的form组件加载数据是在编辑器初始化之后赋值给textarea导致编辑器显示不住编辑的值,因此需要在 EasyUI的form组件的onLoadSuccess事件中再将加载后的值赋给编辑器显示出来才行,于是加入了form的onLoadSuccess事件,代码如下: $(function(){ //初始化FCKEditor $.fck.config = { path: ‘../../FCKeditor/’, width: 700, height: 300, toolbar: ‘Basic’ }; $(‘textarea#Meeting_Content’).fck(); $(‘#editform’).form({ onLoadSuccess: function(data) { $.fck.content(‘infoContent’, $(‘#infoContent’).val()); } }); }); 编辑显示值的问题解决了,但是在EasyUI的datagrid中显示编辑器保存的内容时,firefox下的行的高度变高了,开始以为是JQuery的fckEditor的插件的样式和EasyUI的样式有重名冲突,但是查看处理后的代码发现没冲突,于是发现是因为编辑器保存后的值都加入了p标签,导致行变高了,那就在datagrid之前用正则 表达式去除掉html标签,这样就ok了!

2011年12月17日09:07 评论关闭
备案信息:冀ICP备10007948号