代码之家  ›  专栏  ›  技术社区  ›  Fiona - myaccessible.website

使用jquery将ASP.NET控件添加到页面

  •  2
  • Fiona - myaccessible.website  · 技术社区  · 15 年前

    我正在编写一个ASP.NET应用程序,其中一个对象表是由用户客户端创建的。 我设想他们点击“添加项目”,然后在表格中创建一个新的“行”,并在文本框中输入他们的资料。

    我可以通过用jquery添加HTML来完成这个任务。问题是,行中供用户填写的字段之一需要是颜色选择器。

    我有一个ASP.NET Web用户控件用于我的颜色选择器。如何将它的实例添加到HTML行中的页面?或者我在这里找错树了-有没有更好的方法来封装我的颜色选择器的功能,以便它可以放在每一行?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Ian    15 年前

    不,不能将服务器端ASP.NET控件添加到已使用客户端技术(即javascript)呈现的页中。

    两种选择:

    1. 首先,切换到使用客户端颜色选择器。然后,通过动态地将隐藏字段添加到表单中,您可以将来自此的数据包含在回发中。
    2. 其次,有一个单独的编辑面板,其中包括您的颜色选择器。然后用户选择要编辑的行,该行用当前值等更新编辑面板。值存储在动态向表中添加行时创建的隐藏字段中,并包含在回发中。

    如果没有看到您的用户界面,我无法评论哪一个最好。ASP.NET控件可能看起来更好,但在设计中可能很难使用。一个纯粹的客户端解决方案可能更适合您的设计师,但可能看起来不那么好。您还需要考虑如果/当用户添加 太多了 行数(这可能是10、50或100,具体取决于您的应用程序/代码)。许多动态添加的控件(第一个解决方案)可能会影响页面的性能。

        2
  •  1
  •   Martin Clarke    15 年前

    我不确定您使用的是什么版本的ASP.NET,一种有效的方法是将用户控件转换为 custom control . 然后,您需要实现iCallbackEventHandler(在ASP.NET上执行Ajax的第一种方法);当然,它需要做更多的工作,但它确实提供了良好的控制级别。

    或者,你可以尝试 this

        3
  •  0
  •   Klemen Slavič    15 年前

    不能用jquery添加ASP.NET控件(至少不容易)。但是,当需要将颜色选择器添加到行中时,可以执行回发。

        4
  •  0
  •   Mike    15 年前

    在前面的代码中,声明性地定义新行应该是什么样子的模板,然后使用CSS隐藏它。

    当用户单击“添加新按钮”时,选择并关闭隐藏模板的内容,并将其写入目标分区。执行此操作时,请确保删除隐藏的CSS。

    当然,您只需复制服务器控件的红色HTML,但HTIS Apporach可能会为您提供一种快速、简单的方法来完成所需的工作。