小编mg1*_*075的帖子

jQuery DataTables:控制表宽度

我有一个问题,使用jQuery DataTables插件控制表的宽度.该表应该是容器宽度的100%,但最终是任意宽度,而不是容器宽度.

建议表示赞赏

表声明如下所示

<table id="querytableDatasets" class="display" cellspacing="0"
cellpadding="3"     width="100%">
Run Code Online (Sandbox Code Playgroud)

和javascript

jQuery('#tab-datasets').load('/cgi-bin/qryDatasets', '', function (){  
    jQuery('#querytableDatasets').dataTable({  
        "bPaginate": false,  
        "bInfo": false,  
        "bFilter": false  
    });  
});  `  
Run Code Online (Sandbox Code Playgroud)

检查Firebug中的HTML,你会看到这一点(注意添加的样式="width:0px;")

<table id="querytableDatasets" class="display" cellspacing="0" 
cellpadding="3" width="100%" style="width: 0px;">
Run Code Online (Sandbox Code Playgroud)

在样式中查看Firebug,table.display样式已被覆盖.看不出这是从哪里来的

element.style {  
  width:0;}    

-- dataTables.css (line 84
table.display { 
  margin:0 auto;  
  width:100%;  
}  
Run Code Online (Sandbox Code Playgroud)

jquery datatables jquery-datatables

95
推荐指数
10
解决办法
23万
查看次数

正确地抑制DataTables中的警告?

我正在尝试正确地抑制DataTables中的警告(警报).DataTables的标准行为是在发生错误时抛出javascript警报; 但是,这对我来说当前不方便.我一直在尝试将警告转换为javascript错误

$.fn.dataTableExt.sErrMode = 'throw';
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但这会停止当前的javascript执行,这不是我想要的.因此,我将DataTables操作(init和更改)包装在try-catch中,没有错误处理; 但是,这也会停止javascript执行.(在Chrome和Firefox上测试过)

我的问题是如何为了调试而去除这些错误/警报?我正在尝试调试脚本的其他部分,但这些警报会继续阻碍.

javascript jquery jquery-datatables

30
推荐指数
4
解决办法
2万
查看次数

jQuery DataTables头部有两行:第一行列名和排序,第二行过滤

在旧版本的数据表(高达1.7.?),我以前可以有一个与一个两行列标题,其中分选顶行中完成一个表,包括在列名,和过滤用的输入和选择在第二行完成.

<table>
   <thead>
     <tr>
         <th>Col 1</th>
         <th>Col 2</th>
         <th>Col 3</th>
     </tr>
     <tr>
        <td><input type="text" /></td>
        <td><select><option ....></select></td>
        <td><input type="text" /></td>         
     </tr>
  </thead>
  <tbody>...
Run Code Online (Sandbox Code Playgroud)

对于更高版本,包括最新版本(1.9.0),这不再有效,因为可排序标头将应用于第二行而不是第一行.有没有办法让这个工作,而不诉诸http://code.google.com/p/jquery-datatables-column-filter/等额外的插件 ?

javascript jquery datatables

16
推荐指数
1
解决办法
2万
查看次数

刷新jQuery数据表

对此有很多疑问,但我从来没有找到一个对我有用的问题.我有一个简单而简单的HTML表,其中正在填充来自AJAX调用的行.然后我想用DataTable插件更新表,但它不起作用.我有一个HTML表,看起来像这样:

<table id="myTable">
  <thead>
     <tr>
          <th>1</th>
          <th>2</th>
          <th>3</th>
          <th>4</th>
          <th>5</th>
     </tr>
  </thead>
  <tbody>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

在我的jQuery页面加载中

$(document).ready(function(){
        var oTable = $('#myTable').dataTable({
            "aoColumns": [
              { "bSortable": false },
              null, null, null, null
            ]
        });
});
Run Code Online (Sandbox Code Playgroud)

最后我的下拉列表更改功能

$("#dropdownlist").on("change", function () {
        $("tbody").empty();
            $.ajax({
                type: "POST",
                url: "@Url.Action("ActionHere", "Controller")",
                dataType: "json",
                success: function (data) {
                    $.each(data, function (key, item) {
                        $("tbody").append("<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>");
                    });
                }
            })
        var oTable = $('#myTable').dataTable(); // Nothing happens
        var oTable = $('#myTable').dataTable({ // Cannot initialize it again error
                "aoColumns": [ …
Run Code Online (Sandbox Code Playgroud)

ajax jquery jquery-datatables

13
推荐指数
1
解决办法
7万
查看次数

t-sql GROUP BY使用COUNT,然后从COUNT包含MAX

假设您有一个包含数十万行的"Cars"表,并且您想要进行GROUP BY:

SELECT   CarID
         , CarName
         , COUNT(*) AS Total
FROM     dbo.tbl_Cars
GROUP BY CarID
         , CarName
Run Code Online (Sandbox Code Playgroud)

分组会给您留下类似于以下内容的结果:

CarID       CarName    Total
1872        Olds       202,121   
547841      BMW        175,298
9877        Ford        10,241
Run Code Online (Sandbox Code Playgroud)

一切都很好.我的问题是,在性能和清晰编码方面,将Total和MAX Total分成一个表的最佳方法是什么,所以你得到的结果如下:

CarID       CarName    Total      Max Total
1872        Olds       202,121    202,121
547841      BMW        175,298    202,121
9877        Ford        10,241    202,121 
Run Code Online (Sandbox Code Playgroud)

一种方法是将GROUP结果放入临时表,然后将临时表中的MAX转换为局部变量.但我想知道最好的方法是什么.


UPDATE

Common Table Expression似乎是最优雅的,但与@EBarr类似,我的有限测试表明性能明显变慢.所以我不会参加CTE.

由于@EBarr对该COMPUTE选项的链接表明该功能已被弃用,这似乎也不是最佳路由.

MAX值的局部变量选项和临时表的使用可能是我失败的路线,因为我不知道它的性能问题.

关于我的用例的更多细节:它可能最终成为一系列其他SO问题.但足以说我正在将一大部分数据加载到临时表中(因此tbl_Cars的一个子集进入#tbl_Cars,甚至#tbl_Cars可能会进一步过滤并对其执行聚合),因为我必须在单个存储过程中对其执行多个过滤和聚合查询,该过程返回多个结果集.


更新2

@ EBarr使用窗口函数很好很短.自我注意:如果使用a RIGHT JOIN到外部引用表,该COUNT() 函数应该从tbl_Cars中选择一列,而不是'*'.

SELECT       M.MachineID
             , M.MachineType
             , COUNT(C.CarID) AS Total
             , MAX(COUNT(C.CarID)) OVER() …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2008

12
推荐指数
2
解决办法
3万
查看次数

lodash:使用不同的对象数组过滤对象数组

这个问题是针对lodash的.

给定两个对象数组,使用另一个数组的对象过滤一个数组的最佳方法是什么?我试图在下面提出一个场景,我这样做的方式是使用两个.forEach循环,但我想知道如果使用lodash,有更好的方法来进行这种类型的过滤.


示例
对象的主要源数组是users.

var users = [
  { 'user': 'barney', 'age': 36, 'active': true },
  { 'user': 'joe', 'age': 40, 'active': false },
  { 'user': 'fred', 'age': 50, 'active': false },
  { 'user': 'fred', 'age': 60, 'active': false },
  { 'user': 'fred', 'age': 70, 'active': false },
  { 'user': 'fred', 'age': 22, 'active': false },
  { 'user': 'fred', 'age': 25, 'active': false },
  { 'user': 'barney', 'age': 40, 'active': false }, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays lodash

12
推荐指数
3
解决办法
3万
查看次数

knockout.js:在Internet Explorer 8中使用<select>上的无容器foreach失败

RP尼迈耶的文章Knockout.js性能缺陷#3 -所有绑定火一起,一种方法来建立一个下拉列表提供:

<select data-bind="value: selectedOption">
    <!-- ko foreach: options -->
    <option data-bind="attr: { value: id }, text: name"></option>
    <!-- /ko -->
</select>
Run Code Online (Sandbox Code Playgroud)

这段代码也在文章的jsfiddle中.

http://jsfiddle.net/rniemeyer/QjVNX/

但是,当我使用这种在项目中构建选择的方法时,它工作正常,直到我在Internet Explorer 8中测试.IE8失败并且"无法解析绑定".

实际上,从IE8中的文章中运行小提琴也会导致错误.有没有办法使用knockout的foreach在IE8(我假设IE8或更少)中构建选择

internet-explorer-8 knockout.js

8
推荐指数
1
解决办法
7284
查看次数

如何在没有表重绘的情况下更新数据表中的行?

我有一个从javascript数组填充的dataTables v1.9.4,我有复选框列,如果它是:checked整个行应该每5秒更新一次,问题是我有一个大的fnRowCallback函数,在行更新后没有执行所以我的所有行结构崩溃.这是我的更新代码:

function updateRow(){
    newRowData = $.data(document.body, 'updatedData');
    var newRow = [];
    newRow.push(1, 1);
    for (var title in newRowData[0]){
        newRow.push(newRowData[0][title]);
    }
    oTable.fnUpdate( newRow, updateIndex, false, true);
};  
Run Code Online (Sandbox Code Playgroud)

这个我的fnRowCallback:

"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
                //make 3state button and indicator for relay mask & status
                $('td.relay', nRow).each(function(){
                    relayStatus = $(this).text();
                    $(this).html('<div class="hidden-value">' + relayStatus + '</div><div></div>');
                    if(relayStatus == 1){
                        $(this).children('div:last').addClass('relmas1');
                    }
                    if(relayStatus == 0){
                        $(this).children('div:last').addClass('relmas0');
                    }
                    if(relayStatus == -1){
                        $(this).children('div:last').addClass('relmas-1');
                    }
                });
                //makes update …
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery jquery-datatables

8
推荐指数
1
解决办法
2万
查看次数

数据表 - 水平滚动时,列标题不会移动

我有一个简单的问题例子.我正在使用Datatables 1.9.当数据表位于另一个html表中时,列标题在水平滚动时不会移动.当它不在html表中时,它工作正常.我的例子实际上取自他们在水平滚动的例子,但我添加了外表.任何帮助,将不胜感激.我到处寻找答案.这是代码.谢谢

<head>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/jquery.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/jquery-ui.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/jquery.dataTables.min.js"></script> 

</head>

<form>

<table>
<tr>
<td>

  <div id="demo">
  <table id="example">
  <thead>
  <tr>
  <th>Rendering engine</th>
  <th>Browser</th>
  <th>Platform(s)</th>
  <th>Engine version</th>
  <th>CSS grade</th>
  </tr>
  </thead>
  <tfoot>
  <tr>
  <th>Rendering engine</th>
  <th>Browser</th>
  <th>Platform(s)</th>
  <th>Engine version</th>
  <th>CSS grade</th>
  </tr>
  </tfoot>
  <tbody>
  <tr>
    <td>Trident</td>
    <td>Internet Explorer 4.0</td>
    <td>Win 95+</td>
    <td>4</td>
    <td>X</td>
  </tr>
  <tr>
    <td>Other browsers</td>
    <td>All others</td>
    <td>-</td>
    <td>-</td>
    <td>U</td>
  </tr>
  </tbody>
  </table>
  </div>

</td>
</tr> 
</table>

</form>

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">

$(document).ready(function() {

  $('#example').dataTable( {
  "sScrollX": …
Run Code Online (Sandbox Code Playgroud)

jquery-datatables

8
推荐指数
2
解决办法
1万
查看次数

knex.js:在创建、更新和删除查询中加入验证规则

是否有可能纳入的创建,更新数据验证规则和删除操作使用Knex.js查询生成器库时,即使Knex不这样做开箱

如果是,那么:

  • 为此留在 Knex 是好主意还是坏主意?
  • 如果这是一个不错的方法,有人可以指出一个像样的例子吗?
  • 如果包含 Bookshelf.js,您会过得更好并减少摩擦吗?

甚至 Bookshelf 也没有配备验证引擎。

javascript validation knex.js

5
推荐指数
1
解决办法
2137
查看次数