C# 无法从动态ASP.Net表中读取元素
我正在尝试从动态ASP.Net表中读取元素 该表在ASP页面中声明如下:C# 无法从动态ASP.Net表中读取元素,c#,asp.net,dynamic,html-table,C#,Asp.net,Dynamic,Html Table,我正在尝试从动态ASP.Net表中读取元素 该表在ASP页面中声明如下: <table id="ItemTable" runat="server"> <!-- Will be filled with the user items. --> </table> 它工作得很好——问题是,当我试图查找重复项时,它会找到表——但它找不到动态创建的单元格。我在if子句的末尾设置了一个断点,出于某种原因,尽管已经声明了一个名为AmountFor2的元素,并且找到了
<table id="ItemTable" runat="server">
<!-- Will be filled with the user items. -->
</table>
它工作得很好——问题是,当我试图查找重复项时,它会找到表——但它找不到动态创建的单元格。我在if子句的末尾设置了一个断点,出于某种原因,尽管已经声明了一个名为AmountFor2的元素,并且找到了表,但它找不到具有该ID的元素,并且创建了另一个重复的div。我很确定这是因为该元素是动态创建的;所以,我的问题是,如何找到动态声明的元素?不要在ASP.NET中使用静态字段,它们将在所有请求中共享,也会导致锁定。为什么不使用Repeater或GridViews这样的web数据绑定控件,它也呈现为一个表。@TimSchmelter您能举一个包含所有这些内容的GridView的通用格式的例子吗?
public void AddDiv(shopItem item, int count)
{
ContentPlaceHolder myCPH = (ContentPlaceHolder)this.Master.FindControl("PageContent"); // since i'm in a child of a master page, First i'm finding the CPH
HtmlTable Table = (HtmlTable)myCPH.FindControl("ItemTable");//In the page, I'm finding the table
Control possibleInstance = Table.FindControl("AmountFor" + item.ID); // here i'm looking for an element in the table which should be declared if I already created that item.
if (possibleInstance != null) // making sure there are no duplicates.
{
return;
}
//more meaningless code
TextBox Amount = new TextBox();
Amount.ID = "AmoutFor" + item.ID;
// some more less relevant code
myCell.Controls.Add(Amount);
// even more meaningless code
rows[rows.Count - 1].Controls.Add(myCell);
foreach (var tr in rows)
{
ItemTable.Controls.Add(tr);
}
}