javascript - 层次结构表 - 通过 javascript 激活行?

标签 javascript jquery

我创建了一个具有 3 个层级的数据库驱动的层级表。它几乎完全按照我想要的方式工作,但驱动其功能的 javascript 代码是丑陋的。我想重写其中的一些,但我不太清楚如何。我想我将不得不使用递归函数,但有一些奇怪的业务规则可能使它比我想象的更难。您能否提出任何建议来简化我当前的代码(特别是 ActivateRow() 函数)?参见 fiddle .

请注意,由于 ASP.NET Web 表单回发和丢失输入值,隐藏字段的使用有些古怪,但有一些有用的数据属性写入 HTML,例如 data-region-iddata-subregion-iddata-market-iddata-hierarchy-id。主要要求如下:

  • 有两个表 - 第一个链接到第二个,因此第一个表上的所有操作也应该在第二个表上执行(尽管第二个表略有不同)。
  • 三个级别的层次结构。最高层(Region)、中间层(Sub Region)、最终层(Market)
  • 行激活启用给定行中的所有控件。如果激活的行是子区域行,它会停用其父区域行控件,并且其销售值总计为区域级别。这不适用于激活市场行。
  • 同样,行停用应该禁用并清除该行中的所有控件。如果该行是父行,它应该清除所有子行并禁用它们的控件。
  • 停用父行的所有子行应停用父行并清除所有父行控件。

当然,还有更好的选择。我是在重新发明轮子吗?有什么东西可以用来改进我的意大利面条代码吗?我意识到这不是问答形式的最佳问题 - 是否还有其他地方我应该问我的问题?

最佳答案

目前还不完全清楚你在做什么,但据我所知,你有某种正在过滤的表格。

另外,您正在使用 ASP.NET webforms....真为您感到抱歉。

我不会使用 ASP WebForms 提供的任何类型的表单绑定(bind)控件,因为它现在已经过时、不正确并且非常痛苦。

相反,创建一个支持 AJAX 的页面 [WebMethod] 返回所有数据或使用参数过滤,无论如何,在 JSON 中(因为 JSON 更容易阅读和调试,并且比XML)

去找jQuery插件DataTables .每一种功能都是内置的和可扩展的,它工作得很好, super 高效的客户端,具有各种过滤和搜索功能。

您可以在服务器端创建一个新模型并重新映射数据服务器端,或者转储现有模型并将其重新映射到客户端,无论哪种方式,您只需将 JSON 数据插入 datatables .

保存回 webforms 稍微有点棘手(与 MVC/Razor 相比),因为你必须获取字符串并将其反序列化到你的模型中,它有一些额外的行,但我一直这样做,你可以继续您的业​​务逻辑。

enter image description here

关于javascript - 层次结构表 - 通过 javascript 激活行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232926/

相关文章:

javascript - jQuery 下拉菜单-当用户单击内部 ul 之外的任何地方时隐藏内部 ul

javascript - 映射数组数据并添加到 HTML 中

jquery - 剑道 UI 网格 : radio button and pagination issue

javascript - javascript函数中显式和隐式返回之间有什么区别?

2017 年 3 月 26 日 JavaScript 奇怪的日期行为。一日不能增加。为什么?

javascript - jQuery animate() 与 addClass() 移动元素

jquery - 禁用/启用 div 中的所有元素

javascript - jQueryUI Accordion 不工作

javascript - jQuery 数据表清除标题中的单选按钮

javascript - 这是依赖于浏览器的 javascript 代码吗?