我一整天都在谷歌搜索,似乎无法找到答案。当然也在这里搜索过,也没找到它,但如果我错过了某个地方的答案,请原谅我。我试过了!
我有一个包含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”的传入数据应选中复选框,否则应取消选中该数据。
感谢您的帮助!
威廉
答案 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 + "\" />";
},