在 Internet Explorer 中将可绑定复选框列添加到网格

Posted

技术标签:

【中文标题】在 Internet Explorer 中将可绑定复选框列添加到网格【英文标题】:Adding bindeable checkbox column to grid in Internet Explorer 【发布时间】:2013-09-29 13:52:40 【问题描述】:

剑道网格中复选框的阅读难度。 Adding bindeable checkbox column to grid 的案例由 OnaBai 解决并适用于 Chrome,并且 OnaBai 做了这个例子::http://jsbin.com/ebadaj/12/edit。 但在 Internet Explorer(至少)8 和 9 中,事件只触发一次,之后值不会更新。有任何想法吗?

【问题讨论】:

【参考方案1】:

发现了一个似乎有效的 hack。如果是 MSIE,则每次单击网格中的复选框时重新创建更改事件。其余代码请参见原始案例。

    model.vesselGrid.tbody.on("change", ".ob-paid", function (e) 
        onChange(e);
    );

    function onChange(e) 
        system.log("click");
        var row = $(e.target).closest("tr");
        var item = model.vesselGrid.dataItem(row);
        var ck = $(e.target).is(":checked") ? 1 : 0;

        item.set("IsSelected", ck);
        var brwsr = getBrowser();
        if (brwsr == "MSIE") 
            model.vesselGrid.tbody.on("change", ".ob-paid", function (ee) 
                onChange(ee);
            );
        
    

    //http://***.com/questions/5916900/detect-version-of-browser
    function getBrowser() 
        var N = navigator.appName, ua = navigator.userAgent, tem;
        var M = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
        if (M && (tem = ua.match(/version\/([\.\d]+)/i)) != null) M[2] = tem[1];
        M = M ? [M[1], M[2]] : [N, navigator.appVersion, '-?'];
        return M[0];
    

【讨论】:

以上是关于在 Internet Explorer 中将可绑定复选框列添加到网格的主要内容,如果未能解决你的问题,请参考以下文章

HTML 可以在 Internet Explorer 中将文本区域设为“只读”吗?

引导输入组在 Internet Explorer 中将表格推到超出屏幕宽度

Internet Explorer 吞下事件

在 Internet Explorer 中使用同步可插入协议的自定义 url 协议的最大长度是多少?

为啥 WAMP\XAMPP 服务器(Windows 8) localhost 只能在 Internet Explorer 上工作

哪个 DatetimePicker 更适合 Internet Explorer