我創建了一個數據庫驅動的層次結構表,有3個層次結構級別。它幾乎完全符合我的要求,但驅動其功能的JavaScript代碼是醜陋的。我想重新寫一些,但我不太清楚。我想我必須使用遞歸函數,但是有一些奇怪的商業規則可能會讓它比我想象的更加困難。你能提出一些建議來簡化我現在的代碼(特別是ActivateRow()
函數)嗎?見fiddle。層次表 - 通過JavaScript激活行?
注意,有一些時髦的使用中因的ASP.NET Web隱藏字段形式回傳和丟失的輸入值,但也有寫進HTML一些有用的數據屬性,如data-region-id
,data-subregion-id
,data-market-id
和data-hierarchy-id
。主要要求如下:
- 有兩個表 - 第一個被鏈接到第二個,所以在第一個表,所有行動都應在第二個表來進行,以及(儘管第二個表略有不同)。
- 三層次的層次結構。最高級別(Region),中級(Sub Region)和最終級別(Market)
- 行激活啓用給定行中的所有控件。如果激活的行是子區域行,則會禁用其父區域行控制,並且其銷售額值總計爲區域級別。這不適用於激活市場行。
- 同樣,行停用應該禁用並清除該行內的所有控件。如果該行是父行,則應清除所有子行,並禁用其控制。
- 取消激活父行的所有子項應禁用父行並清除所有父行控制。
當然,還有更好的選擇。我是否重新發明了輪子?有沒有什麼我可以用來改善我的意大利麪代碼?我意識到這不是Q &格式的最佳問題 - 是否有其他地方我應該問我的問題?
你應該嘗試http://codereview.stackexchange.com/ –
謝謝,我以爲這是不是要問最好的地方,但不知道該子域。 – TimeBomb006
請注意,Code Review *需要*將代碼嵌入到問題中。此外,我建議您使用Stack Snippets(Ctrl + M)而不是小提琴,以便代碼可以在現場運行而不是依賴第三方。 –