基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自己主动适应宽带高度

在默认情况下,EasyUI的DataGrid好像都没有具备自己主动宽度的适应功能,通常是指定像素宽度的。可是使用的人员计算机的屏幕分辨率可能不一样,因此导致有些地方显示太大或者太小,总是不能达到好的预期效果,假设DataGrid可以依据窗体尺寸进行伸缩,效果应该好非常多。

本文主要介绍DataGrid控件实现自己主动适应宽带高度的操作。

首先我们须要定义一个resizeDataGrid的扩展函数,方便在页面里面进行调用。扩展函数定义例如以下所看到的。

//datagrid宽度高度自己主动调整的函数
$.fn.extend({
    resizeDataGrid: function (heightMargin, widthMargin, minHeight, minWidth) {
        var height = $(document.body).height() - heightMargin;
        var width = $(document.body).width() - widthMargin;
        height = height < minHeight ?

minHeight : height;
        width = width < minWidth ? minWidth : width;
        $(this).datagrid(‘resize‘, {
            height: height,
            width: width
        });
    }
});

定义好上面的函数后,我们就能够在页面里面使用Javascript进行调用,调用方法例如以下所看到的:$(‘#grid‘).resizeDataGrid。

        var heightMargin = $("#toolbar").height() + 60;
        var widthMargin = $(document.body).width() - $("#tb").width();
        // 第一次载入时和当窗体大小发生变化时,自己主动变化大小
        $(‘#grid‘).resizeDataGrid(heightMargin, widthMargin, 0, 0);
        $(window).resize(function () {
            $(‘#grid‘).resizeDataGrid(heightMargin, widthMargin, 0, 0);
        });

通过上面的代码,我们就能够定义两个高度、宽度的边界。可是这些我们不应该固定化,应该通过一些界面代码的对象动态获取边框大小。

HTML代码例如以下所看到的。

    <div id="tb" style="padding:5px;height:auto">
        <!-------------------------------搜索框----------------------------------->
        <fieldset>
            <legend>信息查询</legend>
            <form id="ffSearch" method="post">
                <div id="toolbar">
                    <table cellspacing="0" cellpadding="0">
                        <tr>
                             <th>
                                <label for="txtProvinceName">省份名称:</label>
                            </th>
                            <td>
                                <input type="text" ID="txtProvinceName" name="txtProvinceName" style="width:100px"  />
                            </td>
                            <td colspan="2">
                                <a href="#" class="easyui-linkbutton" data-options="iconCls:‘icon-search‘" id="btnSearch">查询</a>
                                <a href="javascript:void(0)" class="easyui-linkbutton" id="btnImport" iconcls="icon-excel" onclick="ShowImport()">导入</a>
                                <a href="javascript:void(0)" class="easyui-linkbutton" id="btnExport" iconcls="icon-excel" onclick="ShowExport()">导出</a>
                            </td>
                          </tr>
                    </table>
                </div>
            </form>
        </fieldset>

        <!-------------------------------具体信息展示表格----------------------------------->
        <table id="grid" style="width: 940px" title="用户操作" data-options="iconCls:‘icon-view‘">
        </table>
    </div>

这个界面效果例如以下所看到的。

其它类似的界面类似效果例如以下所看到的。

对照上面的界面,以下的界面添加了左边一个面板,这里的代码也不须要特殊的设置。

            var heightMargin = $("#toolbar").height() + 40;
            var widthMargin = $(document.body).width() - $("#tb").width() + 20;
            // 第一次载入时和当窗体大小发生变化时。自己主动变化大小
            $(‘#grid‘).resizeDataGrid(heightMargin, widthMargin, 0, 0);
            $(window).resize(function () {
                $(‘#grid‘).resizeDataGrid(heightMargin, widthMargin, 0, 0);
            });

上面的代码也仅仅是依据效果进行了一些微调。基本和第一部分的设置宽度代码差点儿相同。

也可以使用布局 class="easyui-layout" 进行调整,使DataGrid表格可以进行自己主动调整。

    <div class="easyui-layout" data-options="fit:true" id="tb">
        <div data-options="region:‘north‘" style="padding:5px;height:70px">
            <!-------------------------------搜索框----------------------------------->
            <fieldset>
                <legend>信息查询</legend>
                <form id="ffSearch" method="post">
                    <div id="toolbar">
                        <table cellspacing="0" cellpadding="0">
                            <tr>
                                <th>
                                    <label for="txtProvinceName">省份名称:</label>
                                </th>
                                <td>
                                    <input type="text" id="txtProvinceName" name="txtProvinceName" style="width:100px" />
                                </td>
                                <td colspan="2">
                                    <a href="#" class="easyui-linkbutton" data-options="iconCls:‘icon-search‘" id="btnSearch">查询</a>
                                    <a href="javascript:void(0)" class="easyui-linkbutton" id="btnImport" iconcls="icon-excel" onclick="ShowImport()">导入</a>
                                    <a href="javascript:void(0)" class="easyui-linkbutton" id="btnExport" iconcls="icon-excel" onclick="ShowExport()">导出</a>
                                </td>
                            </tr>
                        </table>
                    </div>
                </form>
            </fieldset>
        </div>
        <div data-options="region:‘center‘">
            <!-------------------------------具体信息展示表格----------------------------------->
            <table id="grid" title="用户操作" data-options="iconCls:‘icon-view‘" fit="true"></table>
        </div>
    </div>

时间: 2024-10-09 06:13:12

基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自己主动适应宽带高度的相关文章

转--基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

原文  http://www.cnblogs.com/wuhuacong/p/3317223.html 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用 在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控件有:单行文本框.多行文本框.密码文本框.下拉列表Combobox.日期输入控件.数值输入控件.单项选择.复选框.表格控件Da

基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控件有:单行文本框.多行文本框.密码文本框.下拉列表Combobox.日期输入控件.数值输入控件.单项选择.复选框.表格控件DataGrid.树形控件.布局控件.弹出式对话框.提示信息.列表控件等,这些界面控件的操作都有哪些不同,下面我们来逐一进行介绍. <input class="easyui

基于MVC4+EasyUI的Web开发框架经验总结

http://www.cnblogs.com/wuhuacong/p/4093778.html 在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图 标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这样给我们扩展使用有很多的不 方便.基于这个原因,我想如果能够独立一个模块,自动根据图标生成图标CSS样式文件,并存储相应的记录到数据库里面,方便我们查询显示,那样我们使用起 来就很方便了,最后有了这些数

基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动

为了提高客户体验和进行一些技术探索,现在正准备把我自己的客户关系管理系统CRM在做一个Web的版本,因此对基于MVC的Web界面继续进行一些研究和优化,力求在功能和界面上保持和Winform一致,本文主要介绍在我的CRM系统中用到的全国省份.城市.行政区三者的两种效果,在Winform上实现没问题,在Web上基于MVC的EasyUI实现,同样也没有问题. 1.Winform上省份.城市.行政区的联动效果 在很早的时候,我在Winform框架的一篇随笔<Winform开发框架之字典管理模块的更新,

[置顶]基于MVC4+EasyUI的Web开发框架经验总结(6)在页面中应用下拉列表的处理(转载)

[置顶]基于MVC4+EasyUI的Web开发框架经验总结(6)在页面中应用下拉列表的处理 在很多Web界面中,我们都可以看到很多下拉列表的元素,有些是固定的,有些是动态的:有些是字典内容,有些是其他表里面的名称字段:有时候引用的是外键ID,有时候引用的是名称文本内容:正确快速使用下拉列表的处理,可以提高我们程序界面的美观性和友好型,本文主要介绍在我的Web开发框架以及相关的扩展Web应用中用到的一些代表性下拉列表的处理场景,希望给大家做个参考学习. 1.固定下拉列表的处理 代表性的固定列表有人

基于MVC4+EasyUI的Web开发框架经验总结(7)--实现Office文档的预览

在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览的方式,利用微软的平台进行Office文档的在线查看:一种是把Office文档生成HTML文件后进行查看.然后对比他们的优缺点,并进行总结. 1.利用微软的平台进行Office文档的在

(转)基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

http://www.cnblogs.com/wuhuacong/p/3871991.html 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览 在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览

基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览的还是比较少,这里的Office文档包括了Word.Excel.PPT文档.本文介绍两种方式,一种方式是通过在线预览的方式,利用微软的平台进行Office文档的在线查看:一种是把Office文档生成HTML文件后进行查看.然后对比他们的优缺点,并进行总结. 1.利用微软的平台进行Office文档的在

基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出

数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,我曾经在之前的一篇文章<Winform开发框架之通用数据导入导出操作>介绍了在Winform里面的通用导入导出模块的设计和开发过程,但在Web上我们应该如何实现呢?本文主要介绍利用MVC4+EasyUI的特点,并结合文件上传控件Uploadify 的使用,实现文件上传后马上进行处理并显示,然后确认后把数据写入数据库的过程. 我们知道,Web上对Excel的处理和Winform的有所差异,如果是在We