【问题标题】:Nested repeater with controls带控件的嵌套中继器
【发布时间】:2011-08-25 20:11:55
【问题描述】:

我需要创建一个类似于以下内容的用户界面:

cat 1                              Add Category                   Add Point
     cat 1a                        Add Category                   Add Point
          point
     cat 1b                        Add Category                   Add Point
          point
          point
     cat 1c                        Add Category                   Add Point
          cat 1c1                  Add Category                   Add Point
          cat 1c2                  Add Category                   Add Point
               point

我正在考虑使用带有嵌套中继器的中继器,但我对如何进行此操作感到困惑。同样在中继器中单击“添加类别”或“添加点”时,如果可能,我需要在中继器中显示带有按钮的数据输入字段。中继器甚至是一个很好的控件吗?

【问题讨论】:

  • 因为你可以有无限数量的嵌套,我不认为中继器是一个很好的控制。对于这类事情,我会使用结合 JQuery 和 Ajax 的纯 HTML 控件。这样您就可以在客户端动态构建您的标记。
  • 可以有多少层嵌套?它是一个定义的数字,还是可以有任意数量的级别?
  • 没有固定的嵌套级别,这是用户想要的任何东西
  • 我认为自定义用户控件在这里是理想的。用户控件将嵌套其自身或一组“点”的子项。此外,它还支持“添加类别”或“添加点”按钮。您可以在 ControlState 中保留嵌套程度等值,并可以使用它来填充相对于包含控件的最左侧标签。
  • @arviman,因此您建议不要使用中继器控件,而是建议创建一个带有标签和两个按钮的用户控件,并在需要时简单地不断添加该控件。

标签: c# asp.net repeater


【解决方案1】:

复制自问题中的 cmets: 我认为自定义用户控件在这里是理想的。用户控件将嵌套其自身或一组“点”的子项。此外,它还支持“添加类别”或“添加点”按钮。您可以在 ControlState 中保留嵌套程度等值,并可以使用它来填充相对于包含控件的最左侧标签。

您可以查看link 了解如何添加用户控件。您还可以选择做一些额外的工作来使用控制状态来保持控制的深度。

【讨论】:

  • 我在扩展这个答案中有一个问题,是否可以循环遍历中继器项并在单击按钮时加载所有内容后获取数据项?
  • 不,您的数据不应该在回发期间保留。因此,您的中继器项目的 DataItem 将为空。只会保留控件的属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多