0

加载 DOM 后是否可以在 C# 中动态添加元素。下面是我的例子。

这个想法是通过用户干预动态添加行,然后用户提交表单,C# 代码隐藏将遍历每个新添加的行。

但是,无论添加多少行,C# 都只会计算 1 行。

这是 HTML / Jquery / C#

HTML

在将新行添加到表之前。

<table id="tblRecordedBags" runat="server" class="tblBags">
    <tr>
        <th>Amount</th><th>Drop Bag Number</th><th>Edit</th><th>Remove</th>
    </tr>
</table>
<input type='text' class='txtBagNum' id='txtBagNum'>

jQuery

用于添加新行。

$('.addBag').on('click', function(){
  $(".tblBags").append(
            '<tr class="bag"><td class="bag">'
                + $(".total").val() + '</td><td class="bagID">'
                + $(".txtBagNum").val() + '</td>'
                + "</tr>'
});

C# 代码隐藏

快速调试写入

System.Diagnostics.Debug.Write(tblRecordedBags.Rows.Count);
4

2 回答 2

1

发生这种情况是因为您正在从服务器端的服务器端访问no knowledge of any changes to the DOM.

新行被添加到浏览器中,但默认页面保持不变,它位于 .aspx 文件中,并且这些文件最初没有被修改。

要获得正确的输出,您实际上可以在 C# 中添加行,然后尝试。

于 2012-12-05T00:01:02.353 回答
1

我认为 ASP.NET 没有为 javascript 做好准备。

一种简单的方法是使用更新面板通过服务器端添加每一行。

另一种方法是在提交之前尝试从隐藏字段中的行加载所有数据(例如使用 JSON 编码)

于 2012-12-05T00:05:21.547 回答