jQuery dategrid自适应宽度

我想正在用JQuery Easy UI的朋友一定很希望DataGrid能够自适应页面大小变化,目前我还没发现其自带此功能,因此简单写了一个实现方法,与网友们分享,也希望能够帮助有需要的朋友。

下面是我基于JQuery做的一个实现:

Js代码  

  1. /**
  2. * JQuery扩展方法,用户对JQuery EasyUI的DataGrid控件进行操作。
  3. */
  4. $.fn.extend({
  5. /**
  6. * 修改DataGrid对象的默认大小,以适应页面宽度。
  7. *
  8. * @param heightMargin
  9. *            高度对页内边距的距离。
  10. * @param widthMargin
  11. *            宽度对页内边距的距离。
  12. * @param minHeight
  13. *            最小高度。
  14. * @param minWidth
  15. *            最小宽度。
  16. *
  17. */
  18. resizeDataGrid : function(heightMargin, widthMargin, minHeight, minWidth) {
  19. var height = $(document.body).height() - heightMargin;
  20. var width = $(document.body).width() - widthMargin;
  21. height = height < minHeight ? minHeight : height;
  22. width = width < minWidth ? minWidth : width;
  23. $(this).datagrid(‘resize‘, {
  24. height : height,
  25. width : width
  26. });
  27. }
  28. });

使用方法:

Js代码  

  1. $(function() {
  2. var datagridId = ‘userDataGrid‘;
  3. // 其他代码
  4. // 第一次加载时自动变化大小
  5. $(‘#‘ + datagridId).resizeDataGrid(20, 20, 300, 600);
  6. // 当窗口大小发生变化时,调整DataGrid的大小
  7. $(window).resize(function() {
  8. $(‘#‘ + datagridId).resizeDataGrid(20, 20, 300, 600);
  9. });
  10. });

在此补充一下,由于IE6下JS的执行效率很低,因此在让DataGrid自适应页面大小变化的时候,请将DataGrid的fitColumns属性设置为false,否则改变页面大小会导致IE出现一定时间的停顿。设置方法为:

$(‘#‘ + datagridId).datagrid({

title: ‘用户类型‘,

url: ‘userType.json‘,

fitColumns: false,

.......

时间: 2024-10-10 23:24:49

jQuery dategrid自适应宽度的相关文章

jQuery计算文本宽度和input标签根据输入字符动态自适应宽度的实现

jQuery计算文本宽度的原理是利用html提供的<pre>标签,向dom中动态添加<pre>标签,标签里的内容就是要测试长度的文本,获取完长度之后再删除刚才添加的<pre>标签,从而可取到文本的大概长度了.为什么要用标签而不用其他标签呢,那来看看<pre>标签的特性吧:pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符;而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.需要注

基于jQuery自适应宽度跟高度可自定义焦点图

基于jQuery自适应宽度跟高度可自定义焦点图.这是一款带左右箭头,缩略小图切换的jQuery相册代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section class="cntr"> <div class="m10"> <h2 id="example" class="mt20 fcc4">Example</h2> <div class=&q

Jquery 自适应宽度的input

最近按老大嘱咐,在学一些奇奇怪怪的东西,gulp,sass,react啥的... 还在做一个仿QQ邮箱的添加联系人的那个东西. 对,就是这个. 我本来对这个的操作只有可以选人,可以删除选中的人... 但是!!!' 开始做了之后,才发现哪里有我想的那么简单!!! 被卖了!!! 这里,主要是做一个所谓的自适应宽度的input框. 我纠结了很久. 只有一个思路:获取input框里的值的宽度,再去给width宽度! 就是因为这个思路! 中断了一个月. 思路出问题了. 一个月后的我,也就是现在,在网上找了

JS实现自适应宽度的Tag切换

效果体验:http://hovertree.com/texiao/js/3.htm 该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页. HTML文件代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS实现自适应宽度的Tag切换 - HoverTree</titl

从三栏自适应宽度布局到css布局的讨论

如何实现一个三栏自适应布局,左右各100px,中间随着浏览器宽度自适应? 第一个想到的是使用table布局,设置table的宽度为100%,三个td,第1个和第3个固定宽度为100px,那么中间那个就会自适应了,下面是一个实时的demo: left  middle  right  但是table布局是不推荐的,table布局是css流行之前使用的布局,有很多缺点:当table加载完之前,整个table的都是空白的,table将数据和排版参和在一起,使得页面混乱,并且table布局修改排版十分麻烦

UEditor百度富文本编辑器--让编辑器自适应宽度的解决方案

UEditor百度富文本编辑器的initialFrameWidth属性,默认值是1000. 不能够自适应屏幕宽度.如图1: 刚开始的时候,我是直接设置initialFrameWidth=null的.效果如图2: 这样子UEditor百度富文本编辑器会在第一次加载的时候获取屏幕宽度,然后赋值给initialFrameWidth属性. 这样子确实是可以在第一次加载的时候适应屏幕宽度,但是却似乎宽度稍微过了一点点,超过上面的灰条了.而且这里还有一个问题: 当你改变浏览器大小时,会有个很严重的排版BUG

解决Button在IE6、7下的自适应宽度问题

很早就遇到过这么个小问题,但由于其并未影响到实际作用和美观就没有正面解决它,现在,我们来试着解决它. 写一个Button,有两种方式:其一,直接button标签:其二,input type=”button”. 不管哪种方式,Button的宽度在IE6.7下总是不能完美,接下来我们演示一个普通的Button,你可以用IE6或者IE7浏览器看看其显示宽度,然后对比Chrome或者IE8等浏览器,你会发现Bug的所在. 1.一个普通的Button: 可以很直接的看到Button的两边有空隙,当然,这个

[转]UEditor百度富文本编辑器--让编辑器自适应宽度的解决方案

转自http://www.cnblogs.com/VAllen/p/UEditor-InitialFrameWidth-Auto.html UEditor百度富文本编辑器的initialFrameWidth属性,默认值是1000. 不能够自适应屏幕宽度.如图1: 刚开始的时候,我是直接设置initialFrameWidth=null的.效果如图2: 这样子UEditor百度富文本编辑器会在第一次加载的时候获取屏幕宽度,然后赋值给initialFrameWidth属性. 这样子确实是可以在第一次加

DIV+CSS实现两边固定宽度,中间自适应宽度

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>DIV+CSS实现两边固定宽度,中间自适应宽度</title> <style type="text/css"> .left, .right{ width: 100px; height: 100px; background-colo