隐藏空数据库表列

时间:2016-05-25 08:24:21

标签: jquery mysql codecharge

当我的数据库什么都没有返回时,我试图隐藏整个列,但它仍然将数据库字段(例如{something})视为有效输入。

$('#mytable th').each(function(i) {
  var remove = 0;

var tds = $(this).parents('table').find('tr td:nth-child(' + (i + 1) + ')')
tds.each(function(j) {
  if (this.innerHTML == '') remove++;
});
if (remove == ($('#mytable tr').length - 1)) {
  $(this).hide();
  tds.hide();
 }
});

https://jsfiddle.net/wwmyxp9o/9/

这就是它现在的前景:

enter image description here

我已根据Stephen Walcher的代码尝试了此代码 remove/hide table's empty column(s), including <th> ,但仍然没有运气。

我刚刚开始做这样的规模,我很感激这个问题的任何帮助。

谢谢,

ž

1 个答案:

答案 0 :(得分:0)

Z - {fields}在用于Codecharge模板的HTML中,因此jsfiddle中的Jquery不起作用(因为那里有东西) - 看起来每个模板字段后面都有一个空格,这也不是什么(所以this.InnerHTML == ''不会是真的)

我和jsfiddle一起玩,并提出了一些可能会有所帮助的变化:

  1. Codecharge在发布之前没有正确布局HTML - 因此结束</table>标记实际上是中间表格并且会混淆jquery
  2. 分隔符和页脚行都使用&#39; colspan = 55&#39;当我删除它们(并将结束</table>标记移到末尾)时,它适用于测试列。
  3. 或者,在服务器端,您可以在每个列周围添加Codecharge面板(它是Grid Builder向导中的一个选项,可以为您节省大量时间)并且您可以将它们变为&#39; panelname6.Visible = false&#39;单独取决于价值观。

    使用BeforeShowRow标记每个列号,然后使用Grid BeforeShow事件中的自定义代码循环并隐藏面板。您还可以存储列以隐藏在隐藏字段中,并使用jquery使用类似的代码隐藏它们。

    编辑网格选项 - 面板

    Grid Builder在此过程的后期有一些选项(我认为步骤7),它允许您勾选“为每个列添加面板”(用于隐藏/显示功能)&#39;这将在每列(和列标题)周围添加面板,以便您可以在后面的代码中打开和关闭它们。但是,因为它们应该是唯一命名的,所以你也可以使用jQuery来关闭完整的列。

      

    指定是否所有控件都采用以下类型的块:   <!-- BEGIN ControlType ControlName --><!-- END ControlType ControlName -->   它将用于动态隐藏/显示页面上的控件。

    来自Codecharge Manual&#34; Grid Builder&#34;。

    在后面的代码中设置列标记以关闭面板,但某些(伪代码)更多的工作:

    BeforeShowRow
      $flagCol1Hide = ($flagCol1Hide OR $Container->col1Value->GetValue() > 0);
      $flagCol2Hide = ($flagCol2Hide OR $Container->col2Value->GetValue() > 0);
      //etc
    end
    
    BeforeShow
      // For the Grid (aka $Component in this case), with Panels as children
      $Component->PanelCol1->Visible = !$flagCol1Hide;
      $Container->PanelCol2->Visible = !$flagCol2Hide;
    end
    

    至于Totals,如果你不能得到它们,你也可以在BeforeShowRow中包含你自己的总和,并将它们添加到BeforeShow中的显示总数。 (请参阅“使用Total&#39;简单报告的Codecharge帮助”。)