C# 提交后丢失的表的jQuery DOM操作

C# 提交后丢失的表的jQuery DOM操作,c#,jquery,asp.net,webforms,C#,Jquery,Asp.net,Webforms,基于文本框“自动完成”功能,用户可以从结果列表中进行选择,然后用户将选择一个结果并将其添加到“篮子”中,用户执行多个快速搜索,并从此篮子中添加或删除项目 目前我用一张桌子作为“篮子”。一旦用户对篮子感到满意,用户将篮子提交给服务器,服务器通过篮子循环并更新数据库 我试图用jQuery操作一个表,问题是一旦回发发生,DOM操作就会被删除 该表如下所示 <asp:Table ID="Basket" runat="server" EnableViewState="False">

基于文本框“自动完成”功能,用户可以从结果列表中进行选择,然后用户将选择一个结果并将其添加到“篮子”中,用户执行多个快速搜索,并从此篮子中添加或删除项目

目前我用一张桌子作为“篮子”。一旦用户对篮子感到满意,用户将篮子提交给服务器,服务器通过篮子循环并更新数据库

我试图用jQuery操作一个表,问题是一旦回发发生,DOM操作就会被删除

该表如下所示

 <asp:Table ID="Basket"
 runat="server"
 EnableViewState="False">
     <asp:TableHeaderRow TableSection="TableHeader">
         <asp:TableHeaderCell>ID</asp:TableHeaderCell>
         <asp:TableHeaderCell>Name</asp:TableHeaderCell>
         <asp:TableHeaderCell>Quantity</asp:TableHeaderCell>
     </asp:TableHeaderRow> </asp:Table>

这就是问题所在,表被重置为仅包含1行的初始状态。考虑到我已经禁用了ViewState,我认为该控件将模拟发回的内容。但是很明显,有什么东西使它复位了。

你认为这完全是错误的,Javascript是前端,如果你不告诉服务器已经添加了行,它永远不会知道,因此它只会按照你的指示添加一行


您需要以某种方式保存这些值

目的是仅在该页面上创建一个“篮子”,并执行批量提交,一旦提交了项目的id和数量存储在服务器端,这将防止不断的聊天,并使用户界面更像桌面。我赞成。JS是一种客户端技术,您需要实现JS客户端代码和服务器端代码之间的通信。如果您没有以某种方式将更新提交到服务器端,怎么知道呢?HTTP是一种断开连接的协议。您可以这样做,而且这不是唯一的方法,但是:我会将值添加到一个隐藏字段(JSON)中,并在服务器端对其进行解析。@Elad Lachmi“提交”按钮的作用是遍历刚发布的表单post中的数据,我知道我可以创建一个隐藏字段,将我在表中写入的内容压缩成一个字符串,然后解析该字符串,但当表的形式是post请求的一部分时,感觉很傻:)@thmsn您认为是一个有状态的环境,而实际上它是无状态的,AFAIK ASP:table不记得您对该表所做的更改,因为这些更改未提交到服务器
foreach (TableRow row in this.Basket.Rows)
{
            if (row.TableSection != TableRowSection.TableBody) { continue; }
}