SlickGrid 插件开发(3):Dropdownlist 下拉框控件开发

本文介绍了在SlickGrid中开发DropdownList插件的过程,包括嵌入单元格的下拉框编辑功能,详细阐述了如何绑定外部数据源、处理Changed事件以及序列化方法。还提供了插件的完整代码示例,分为可编辑和只读两种情况,有助于扩展SlickGrid的功能。
摘要由CSDN通过智能技术生成

前言:用户在Grid里面的操作是一种富客户端的应用,下拉框编辑功能必不可少,目前已经整理出单元格嵌入方式的下拉框,只读下拉框列和可编辑的下拉框插件。在此把大致的开发过程总以总结说明,以飨读者。


 1. DropdownList Editor -- 嵌入单元格

1). 绑定外部数据源和Changed事件

        var dataSouce = args.grid.$selDropdownlistDatasource;
        var changedEvent = args.grid.$selDropdownlistChangedEvent;

2). 初始化方法

$select = this.preRender(args.grid.$selDropdownlistDatasource);
if (changedEvent != null)
    $select.change(function () {
        changedEvent(this, { "ID": $select.val(), "txt": $select.find('option:selected').text() });
    });

$select.appendTo(args.container);
预添加控件:
this.preRender = function (dataSource) {
    var option_str = "";
    var preSelect = "<SELECT tabIndex='0' class='editor-select'><OPTION value='-1'></OPTION>";
    var endSelect = "</SELECT>";
    
    var len = dataSource.length;
    if (len > 0 && dataSource[0].txt != undefined) {
        for (var i = 0; i < len; i++)
            option_str += "<OPTION value='" + dataSource[i].ID + "'>" + dataSource[i].txt + "</OPTION>";
    }
    else {
        for (var i = 0; i < len; i++)
            option_str += "<OPTION value='" + dataSource[i].ID + "'>" + dataSource[i].Text + "</OPTION>";
    }

    var list = preSelect + option_str + endSelect;
    return $(list);
}


3). 序列化方法

this.serializeValue = function () {
    if ($select.val() != -1) {
        ret
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值