Browse Source

Fix 18: add singleSelect option.

zhixin 11 years ago
parent
commit
b0e63a92fa
2 changed files with 28 additions and 1 deletions
  1. 18 0
      docs/examples.html
  2. 10 1
      src/bootstrap-table.js

+ 18 - 0
docs/examples.html

@@ -88,6 +88,7 @@
                         <ul class="nav">
                             <li><a href="#radio-table">Radio</a></li>
                             <li><a href="#checkbox-table">Checkbox</a></li>
+                            <li><a href="#single-checkbox-table">Single Checkbox</a></li>
                         </ul>
                     </li>
                     <li>
@@ -388,6 +389,23 @@
                     </table>
                 </div>
                 <div class="highlight"><pre><code class="language-html"></code></pre></div>
+
+                <div class="page-header">
+                    <h2 id="single-checkbox-table">Single Checkbox</h2>
+                </div>
+                <div class="bs-example">
+                    <table data-toggle="table" data-url="data1.json" data-height="246" data-click-to-select="true" data-single-select="true">
+                        <thead>
+                        <tr>
+                            <th data-field="state" data-checkbox="true"></th>
+                            <th data-field="id" data-align="right">Item ID</th>
+                            <th data-field="name" data-align="center">Item Name</th>
+                            <th data-field="price" data-align="">Item Price</th>
+                        </tr>
+                        </thead>
+                    </table>
+                </div>
+                <div class="highlight"><pre><code class="language-html"></code></pre></div>
             </div>
 
             <div>

+ 10 - 1
src/bootstrap-table.js

@@ -82,6 +82,7 @@
         idField: undefined,
         cardView: false,
         clickToSelect: false,
+        singleSelect: false,
         toolbar: undefined,
 
         rowStyle: function(row, index) {return {};},
@@ -222,7 +223,7 @@
                 text += that.getCaretHtml();
             }
 
-            if (column.checkbox) {
+            if (column.checkbox && !that.options.singleSelect) {
                 text = '<input name="btSelectAll" type="checkbox" class="checkbox" />';
                 that.header.stateField = column.field;
             }
@@ -690,6 +691,14 @@
             that.$selectAll.prop('checked', checkAll);
             row[that.header.stateField] = checked;
             that.options[checked ? 'onCheck' : 'onUncheck'](row);
+
+            if (that.options.singleSelect) {
+                that.$selectItem.filter(':checked').not(this).each(function() {
+                    $(this).prop('checked', false);
+                    that.data[$(this).data('index')][that.header.stateField] = false;
+                });
+            }
+
 //            $(this).parents('tr')[checked ? 'addClass' : 'removeClass']('selected');
         });
         this.resetView();