我目前正在尝试遍历 DataTable 并在加载时根据从数据库返回的数据向页面添加元素。我目前有用于检索数据和插入 div/标题的业务逻辑,但我不确定如何添加可以将数据返回到服务器的 asp 文本框。
我想尝试复制文本框(或接近它)的常用逻辑,如下所示:
//ascx
<asp:TextBox runat="server" ID="txt_Textbox1" MaxLength="50" Width="180"></asp:TextBox>
//ascx.cs
string text = txt_Textbox1.Text;
这是我目前所拥有的
id = "....."
div_contents.InnerHtml = GetContents(id);
protected static string GetBuildingCode(Guid ItemGUID)
{
string content = string.Empty;
DataTable dt = new DataTable();
//Business Logic For Getting Data
content += "<div>"
foreach (DataRow dr in dt)
{
content += "<div>"
content += "<h3>" + dr.Name + "</h3>"
//Add Textbox or Textarea here
content += "</div>"
}
content += "<div>"
return content;
}
我试过像下面这样添加文本区域:
content += "<br /><textarea ID=\"txt_" + dr.ItemGUID + "\" MaxLength=\"1000\" style=\"width:90%; height:150px\"></textarea><br />";
这适用于呈现文本区域,但是我想不出一种访问数据的方法。
以下是服务器端控件在 ASP.NET 中的工作方式:
步骤 1。您的 Web 应用程序将控件添加到页面中的控件列表中。
步骤 2。 ASP.NET 管道呈现页面,该页面遍历所有控件并要求它们输出 HTML。然后每个控件输出其 HTML。管道将所有这些 HTML 放在一起并将其发送回客户端。此步骤自动发生。
您正在尝试通过操作在步骤 2 中输出的 HTML 来添加控件。这将对步骤 1 中的控件产生零影响。因此它不会起作用。
如果你想给页面添加控件,我可以给你两个选择: