2010-11-08 65 views
2

我一直在搜索這一整天,似乎無法找到答案。當然,也在這裏搜索,也沒有找到它,但請原諒我,如果我錯過了答案的地方。我確實嘗試過!如何獲取YUI DataTable中CheckBox的選中狀態,以便通過數據源中的數據進行設置?

我有一個包含CheckBox字段的YUI DataTable。我希望根據傳入的JSON數據來選中或取消選中此框,該JSON數據用作表的數據源。發生了什麼事是複選框被檢查所有行,我不知道該怎麼做才能告訴它只檢查框,如果字段值是'真'。這裏是我的代碼截至目前:

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 }); 

     } 

'命中'字段是我在這裏關心的人。輸入值爲'true'的數據應該是複選框,否則應該取消選中。

感謝您的幫助!

威廉

回答

1

爲formatCheckbox的實際代碼如下。我只是猜測,但也許你正在傳遞字符串'假'或字符串'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 + "\" />"; 
    }, 
+0

那麼,我可以傳遞一個JSON字符串來表示錯誤?我只是在您發佈的代碼的評論中嘗試了對象文字方法,但這也不起作用。我也嘗試傳遞一個空字符串'',並且不起作用。困惑... – 2010-11-09 18:28:02

+0

我剛剛重新檢查了我的代碼,並且確實通過了字符串而不是布爾值。它現在的作品,謝謝! – 2010-11-09 18:51:37

相關問題