代码之家  ›  专栏  ›  技术社区  ›  Jeff

jquery.clone()和ASP.NET窗体

  •  1
  • Jeff  · 技术社区  · 15 年前

    所以我有一个页面,我希望能够在其中向数据库中的记录添加多个动态用户。以下是大致的起始页:

        <div id="records">
            <div id="userRecord">
                Name: <asp:TextBox runat="server" ID="objNameTextBox"></asp:TextBox> <br />
                Phone Number: <asp:TextBox runat="server" ID="objPhoneNumberTextBox"></asp:TextBox> <br />
            </div>
        </div>
    

    jQuery:

       $(function () {
       $(".button").button().click(function (event) { addnew(); event.preventDefault(); });
        })
        function addnew() {
            $('#userRecord').clone().appendTo('#records');
        }
    

    因此,我的问题是,如何在ASP.NET中使用它来轮询表单中的所有数据,并为“记录”分区中的每个“用户记录”分区添加一个唯一的记录?是的-我应该把用户记录改成一个类-我会处理的。这只是简单的测试。

    我应该在JSON中查找这种类型的函数吗?我对它不熟悉,但我能弄清楚这是否是我最好的选择。谢谢你的指导!

    2 回复  |  直到 15 年前
        1
  •  2
  •   Francisco Soto    15 年前

    不能用javascript复制ASP.NET Web窗体控件,因为运行时会跟踪HTML中的控件,如果您试图用javascript复制这些控件,则会复制HTML,它们看起来可能相同,但ASP.NET不会知道它们的任何信息。

    你可以使用一个updatepanel来完成它,用你的按钮触发一个发帖,用程序在你的后端创建控件,并将它们附加到所说的面板上,这将模仿你正在尝试做的事情。

    另一种方法是创建HTML输入并将这些内容提交给Web服务或Web方法,并在那里对数据库进行实际插入,但普通的ASP.NET方法对所述输入无效,因为就ASP.NET而言,它们不是控件。

        2
  •  0
  •   Kenny Evitt    15 年前

    如果在ASP.NET页的回发过程中尝试添加新记录,则…祝你好运。我不确定您是否可以将新的“项目”添加到列表客户端。ASP.NET webforms使用视图状态(这实际上只是直接嵌入到返回给用户的页面的HTML中的一大团信息)来维护页面的状态,我认为您不容易(我确定 理论上 可能)更新视图状态客户端(无论您使用的是jquery还是javascript)。

    也许我自己的情况也差不多。如果我有一个包含项目列表的页面,并且我希望允许用户添加新项目,我将像您所做的那样添加适当的输入字段,并添加一个特殊的按钮,为此我将绑定一个javascript函数(通过jquery),它向Web服务(Visual Studio项目中的另一个项目)发出Ajax请求,并使用json来回传递数据。(比使用默认XML简单得多)。这样,不需要将整个页面发布到Web服务器,用户就可以更改后端数据,也不需要(以某种方式)分析页面数据本身以确定需要添加到数据库中的项目。

    推荐文章