gpt4 book ai didi

c# - 无法使用 ASP/C# 向表格动态添加多行

转载 作者:行者123 更新时间:2023-11-30 20:56:34 25 4
gpt4 key购买 nike

我有一个带有 HTML 表格的网络应用程序,其中到处都包含输入框。我希望能够从 C# 端向这些表添加行。为此,我使用了一个调用此方法的 asp 按钮:

private void AddRow()
{
HtmlTableRow tRow = new HtmlTableRow();

HtmlTableCell cell = new HtmlTableCell();
HtmlTableCell cell2 = new HtmlTableCell();
HtmlTableCell cell3 = new HtmlTableCell();
HtmlTableCell cell4 = new HtmlTableCell();

cell.InnerHtml = "<input type=\"text\" size=\"29\">";
tRow.Cells.Add(cell);

cell2.InnerHtml = "<input type=\"text\" size=\"9\" class=\"units commas\" />";
cell2.Attributes.Add("class", "leftBorder textCenter");
tRow.Cells.Add(cell2);

cell3.InnerHtml = "<input type=\"text\" size=\"8\" class=\"value commas\" />";
cell3.Attributes.Add("class", "leftBorder textCenter");
tRow.Cells.Add(cell3);

cell4.InnerHtml = "<input type=\"text\" size=\"11\" readonly=\"readonly\" tabindex=\"-1\" class=\"totalA1 autoTotal\" />&nbsp;";
cell4.Attributes.Add("class", "leftBorder rightBorder textRight");
tRow.Cells.Add(cell4);

someTable.Rows.Add(tRow);
}

这非常有效……正好一行。我可以单击按钮,它会添加一行。如果我再次单击它,它不会执行任何操作。更具体地说,我怀疑它正在删除当前添加的行,将文档恢复到“默认”状态,然后添加一行(实际上什么都不做)。

假设我是对的,我需要能够以某种方式将一行附加到另一个动态创建的行,而不是仅仅替换它。如果我不对,我只需要一种能够在按下按钮时不断添加行的方法。

我该怎么做?

编辑:我应该说明,所有这些都可以在一个循环中一次性完成。为了测试,我希望让它在按下按钮时工作,但它都可以整齐地塞进某种循环中。我已经(有些)成功地将它合而为一。

最佳答案

做你需要做的绝对最好的方法是在客户端,而不是服务器端。对于您正在做的事情,每次插入新行时都回发到服务器是没有意义的(在我看来)。是否有您必须执行此服务器端 (C#) 的特定原因?

使用 Javascript (jQuery) 在单击按钮时动态地将新行插入到您的表中。该页面不会刷新,速度更快,并且可以提供更好的用户体验。

我假设您熟悉 Javascript,但您可以将客户端事件绑定(bind)到服务器端按钮 - 只需添加 onclientclick="insertRow();"其中 onclientclick是按钮控件的一个属性,insertRow()是在您的页面中定义的 Javascript 方法 <script></script>标签。

如果您需要我写一个关于如何执行此操作的示例,请告诉我,我可以编辑我的答案。

关于c# - 无法使用 ASP/C# 向表格动态添加多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17455303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com