簡體   English   中英

隱藏空數據庫表列

[英]Hiding empty database table column

當數據庫未返回任何內容時,我試圖隱藏整個列,但仍將數據庫字段(例如{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/

這是現在的樣子:

在此處輸入圖片說明

我已經基於Stephen Walcher的代碼remove / hide表的空列(包括<th>)嘗試了這段代碼,但是還是沒有運氣。

我剛剛開始做這種規模的事情,感謝您對這個問題的幫助。

謝謝,

ž

Z-{fields}在HTML中用於Codecharge模板,因此jsfiddle中的Jquery無法正常工作(因為那里有東西)-看起來每個模板字段后面都有一個空格,這也不是沒什么(所以this.InnerHTML == ''不會是真的)

我玩過jsfiddle,並提出了一些可能會有所幫助的更改:

  1. 直到發布,Codecharge才會正確布局HTML-因此, </table>標記實際上是中間表,會混淆jquery
  2. 分隔符和頁腳行都使用'colspan = 55',當我刪除它們(並將</table>結束符移到末尾)時,它適用於測試列。

或者,在服務器端,您可以在每列周圍添加Codecharge面板(這是Grid Builder向導中的一個選項,它將節省大量時間),並且您可以根據值分別將其變為“ panelname6.Visible = false”。

使用BeforeShowRow標記每個列號,然后使用Grid BeforeShow事件中的自定義代碼循環瀏覽和隱藏面板。 您還可以存儲列以隱藏在隱藏字段中,並使用jquery使用與您使用的類似代碼隱藏它們。

編輯網格選項-面板

Grid Builder在此過程的后期有一些選項(我認為是第7步),它允許您勾選“將面板添加到每列(用於隱藏/顯示功能)”,這將在每列(和列標題)周圍添加面板,以便您可以在后面的代碼中打開和關閉它們。 但是,由於它們應該被唯一命名,因此您也可以使用jQuery關閉完整的列。

指定是否將所有控件都放入以下類型的塊中: <!-- BEGIN ControlType ControlName --><!-- END ControlType ControlName -->它將用於動態隱藏/顯示頁面上的控件。

摘自“ Grid Builder”上的Codecharge手冊。

它是更多的工作來設置列在后面的代碼以關閉面板下垂,但類似的信息 (偽代碼):

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

至於總計,如果您無法獲得它們,則還可以將自己的總計包括在BeforeShowRow中,然后將它們添加到BeforeShow中的顯示總計中。 (請參閱“帶有總計的簡單報表”上的Codecharge幫助)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM