【问题标题】:Repeater Vs String Builder中继器与字符串生成器
【发布时间】:2011-06-03 09:35:21
【问题描述】:

我认为这个问题可能看起来有点奇怪,但这里是详细信息。

目标:出于各种原因检索一组对(文本、值)。其中一个例子是检索字母表,每个字母将用作锚点或链接按钮,文本值将是字母,单击事件将获取该对的值部分并将其放在 stringFormat()形成一个“参数化 URL”

我为这个目标使用了两种方法,但我不知道哪种方法更好!

1.使用中继器

一个中继器,它将在其 ItemTemplate 中包含一个 LinkBut​​ton,并通过此块将文本设置为“文本”并使用 eval 和“值”来创建 QueryString。

2。使用 StringBuilder

创建 StringBuilder 的实例 使用与要检索的总对数相等的计数器的循环。并附加某种字符串格式,该格式将使用类似这样的代码构建一个长字符串,其中包含导航所需的所有锚点

Links_strngBuilder.Append(string.Format("<a href='/data.aspx?page={0}'>{0}</a>", chrctr))

最后将 String Builder 实例转换为字符串并赋值给标签

注意:chrctr 文本和值字段将按照您的建议检索 [在数据库的每个循环中] 或 [加载到数组/arrayList/List 中以存储值并将所有这些连接保存到数据库]

【问题讨论】:

    标签: c# asp.net sql webforms


    【解决方案1】:

    在我工作的地方,由于设计师的原因,我们永远不会使用 stringbuild。如果他必须进行简单的更改,我们不希望设计师在代码隐藏中。因此,将标记保留在视图中,并将代码隐藏保留在代码隐藏中。

    编辑

    中继器的另一个优点是周期的变化更容易。无需重新编译或重新部署调整 UI,只需编辑 ASPX 模板,保存并刷新即可。

    【讨论】:

    • +1 你是对的,StringBuilder 会让事情变得复杂。但我正在寻找一个完整的比较,或者至少是性能和可扩展性等最重要的点。
    【解决方案2】:

    我不知道这两种方法的性能(在内存使用和速度方面)如何相互比较,但我肯定会选择 Repeater,因为:

    • 代码更容易理解和支持
    • 使用 StringBuilder 让我想起了经典 ASP 时代,当时 Response.Write 被广泛使用。
    • 您无法将 Visual Designer 的任何优点与 StringBuilder 结合使用。

    -- 帕维尔

    【讨论】:

    • 与 Kim 的答案非常相似,但更详细,谢谢! +1。仍然希望获得有关每种方法的优缺点的更多详细信息。
    【解决方案3】:

    我认为构建输出更适合客户端(例如,当您进行 ajax 调用并希望在 html 中显示结果时)而不是服务器端,除非您构建自定义服务器控件。

    此外,如果您使用中继器,则您可以在需求发生变化时使用可扩展性选项,并且您拥有更多控制和设施(例如事件处理和使用 css 进行样式设置等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多