如何在YUI DataTable中获取CheckBox的已检查状态,以便由数据源中的数据设置?

时间:2010-11-08 21:47:38

标签: yui yui-datatable

我一整天都在谷歌搜索,似乎无法找到答案。当然也在这里搜索过,也没找到它,但如果我错过了某个地方的答案,请原谅我。我试过了!

我有一个包含CheckBox字段的YUI DataTable。我想根据传入的JSON数据检查或取消选中此框,我将其用作表的数据源。发生的事情是检查所有行的复选框,我不知道该怎么做才能告诉它只检查字段值为“true”的方框。这是我现在的代码:

createDataTable : function (data) {
        var columnDefs =  [
                            { key: "Well", width : 30 },
                            { key: "Value", field: "ReducedValue", width : 100 },
                            { key: "Hit", width : 30, formatter:YAHOO.widget.DataTable.formatCheckbox},
                            { key: "Reason", field: "reason", width : 200 }                                
                          ];
        var dataSource = new YAHOO.util.DataSource(data);
        dataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
        dataSource.responseSchema = {
          fields : [ "Well", "ReducedValue", "Hit", "reason" ]
        };

        var dataTable = new YAHOO.widget.ScrollingDataTable("data-table", columnDefs, dataSource, {height:"10em"});
        $(".yui-dt table").css( { width : imageW } );

      }

'Hit'字段是我在这里关注的字段。对于此字段,值为“true”的传入数据应选中复选框,否则应取消选中该数据。

感谢您的帮助!

威廉

1 个答案:

答案 0 :(得分:1)

formatCheckbox的实际代码如下。我只是猜测,但也许你传入的字符串'false'或字符串'0'实际上是真值。

 /**
     * Formats a CHECKBOX element.
     *
     * @method DataTable.formatCheckbox
     * @param el {HTMLElement} The element to format with markup.
     * @param oRecord {YAHOO.widget.Record} Record instance.
     * @param oColumn {YAHOO.widget.Column} Column instance.
     * @param oData {Object | Boolean} Data value for the cell. Can be a simple
     * Boolean to indicate whether checkbox is checked or not. Can be object literal
     * {checked:bBoolean, label:sLabel}. Other forms of oData require a custom
     * formatter.
     * @static
     */
    formatCheckbox : function(el, oRecord, oColumn, oData) {
        var bChecked = oData;
        bChecked = (bChecked) ? " checked=\"checked\"" : "";
        el.innerHTML = "<input type=\"checkbox\"" + bChecked +
                " class=\"" + DT.CLASS_CHECKBOX + "\" />";
    },
相关问题