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

Adding bindeable checkbox column to grid in Internet Explorer

本文关键字:Explorer Internet 网格 添加 绑定 复选框      更新时间:2023-09-26

难以读取剑道网格中复选框的值。将可绑定复选框列添加到网格的情况由 OnaBai 解决并适用于 Chrome,OnaBai 制作了此示例::http://jsbin.com/ebadaj/12/edit。但在 Internet Explorer(至少)8 和 9 中,事件仅触发一次,之后不会更新值。有什么想法吗?

找到了一个似乎有效的黑客。如果是 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://stackoverflow.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];
    }