Easyui - 一个比较复杂的ComboGrid(数据表格下拉框)多选的例子

由于某种情况下,使用ComboGrid的时候比较多,为了方便以后使用的时候方便查找,在这里记录一下。


适用场景:多项选择,自动完成,看下面的效果图。


效果图


由于需要多选,因此不能在原来的输入框中通过逗号隔开输入多项实现,所以在弹出的datagrid中增加了一个输入框,并且增加了一个清空已选内容的按钮。  


前端代码:

<th>
    病种[<span class="format_required">*</span>]:
</th>
<td colspan="3">
    <script type="text/javascript">
        $(function () {
            setTimeout(function () {
                var old = '';
                var search = true;
                var query = [];
                var $grid = $('#kc21_alc028');
                var $input = $('input[name=aka066]');
                $input.keyup(function () {
                    var _new = $input.val();
                    if (_new != old) {
                        old = _new;
                        query = [old];
                        setTimeout(function () {
                            if (query.length > 0) {
                                var param = query.pop();
                                query = [];
                                if (param != '') {
                                    var aka081 = $grid.combo('getText');
                                    $grid.combogrid('grid').datagrid('load', {zjm: param});
                                    setTimeout(function(){
                                        $grid.combo('setText', aka081);
                                    },100);
                                }
                            }
                        }, 1500);
                    }
                });
                $grid.combo('options').onShowPanel = function () {
                    setTimeout(function(){
                        $input.focus();
                    },100);
                }
                $grid.combogrid('grid').datagrid('options').onSelect = function(){
                    return false;
                };

                $grid.combogrid('grid').datagrid('options').onClickRow = function(index, row) {
                    search = false;
                    var aka080 = $grid.combo('getValue');
                    var aka081 = $grid.combo('getText');
                    if (aka080) {
                        //去重
                        if(aka080.split(',').indexOf(row.aka080) == -1){
                            aka080 += ',' + row.aka080;
                        }
                    } else {
                        aka080 = row.aka080;
                    }
                    if (aka081 != '') {
                        if(aka081.split(',').indexOf(row.aka081) == -1){
                            aka081 += ',' + row.aka081;
                        }
                    } else {
                        aka081 = row.aka081;
                    }
                    $grid.combo('setValue', aka080);
                    $grid.combo('setText', aka081);
                    setTimeout(function () {
                        search = true;
                    }, 1000);
                }
                //清空病种
                $('#clearAka066').linkbutton('options').onClick = function () {
                    $grid.combo('clear');
                }
            }, 1000);
        });
    </script>
    <div class="datagrid-toolbar" id="md09_tools" style="width:100%;height:30px;">
        <table>
            <tr>
                <th>助记码: </th>
                <td>
                    <input type="text" class="format_txt" data-options="required:true" name="aka066"/>
                </td>
                <td>
                    <div class="dialog-tool-separator"></div>
                </td>
                <td>
                    <a href="javascript:void(0)" class="easyui-linkbutton"
                       data-options="iconCls:'icon-no',plain:true" id="clearAka066">清空病种</a>
                </td>
            </tr>
        </table>
    </div>
    <select id="kc21_alc028" class="easyui-combogrid" name="alc028" style="width:660px;"
            data-options="
                panelWidth:660,
                idField:'aka080',
                fitColumns:true,singleSelect:true,toolbar:'#md09_tools',
                textField:'aka081',
                editable:false,
                url:'his/inputInfo/md09.html',
                method:'get',
                queryParams:{zjm:''},
                columns:[[
                    {field:'aka080',title:'病例编码',width:100},
                    {field:'aka081',title:'病例名称',width:160},
                    {field:'aka066',title:'助记码',width:100}
                ]]
            "></select>
</td>

从设计上来看和前一篇单选的比较类似,只是针对这个输入框进行了相应的修改。


后端代码和前一篇单选的一样,这里不贴代码了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

isea533

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值