【问题标题】:Adding multiple sections dynamically -ASP.NET动态添加多个部分 -ASP.NET
【发布时间】:2011-12-10 12:04:24
【问题描述】:

我有一个网页,其中包含不确定数量的部分(由一组文本框、下拉列表等组成)。用户单击“添加部分”按钮,应动态添加此部分。用户可以添加多少个部分没有上限。然后有一个保存按钮,此时我需要遍历所有部分并保存数据。

我的第一个想法是将部分创建为用户控件,每当用户单击服务器端的“添加部分”时,我都会动态添加该部分。

我想避免动态添加用户控件,因为我觉得这有点古怪。我想了解我是否可以在此处的用例中利用 jquery 或客户端模板。

想法或建议?

【问题讨论】:

  • 我们有一个类似的应用程序,我们通过混合方法处理。用户控件在页面第一次加载时使用,动态客户端渲染由 jQuery 模板处理。这一切都是可能的,因为我们根本不使用回发,而是使用 jQuery bajax 到 WebMethods 来与服务器对话。是的,这会起作用!
  • Floyd - 你能解释一下混合方法吗?您是说第一次加载页面时,您将现有部分添加为用户控件。任何后续添加,您都会从用户控件中获取标记并使用 jquery 模板来呈现该部分?

标签: jquery asp.net architecture asp.net-4.0 jquery-templates


【解决方案1】:

我认为使用用户控制解决方案没有任何问题。类似的(服务器端)技术是使用数据绑定控件,例如 Repeater 或 ListView - 项目模板将定义该部分。服务器端解决方案的优势在于它可以快速构建并且可以使用 ASP.NET 基础结构,例如视图状态(这样您就不必担心在回发时维护状态)。典型的 ASP.NET Forms 开发人员很容易理解其中的逻辑。另一方面是更大的标记大小,在添加部分时进行多次大数据传输(无论您使用完整还是部分回发都无关紧要 - 视图状态将是正在传输的数据的重要部分)。

我个人更喜欢客户端模板方法,因为您可以避免回发和相关的数据传输。但是有两个问题 - a) 显示/更新部分的相对复杂的逻辑 - 请记住您的代码在两个地方是碎片化的 - js 和服务器端代码 - 典型的开发人员会发现很难理解 b) 对 java 脚本的依赖(有时,如果不支持js,则必须提供回退机制)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多