asp.net:(C# 客户端)如何访问页面加载后创建的 HTML 元素

本文关键字:加载 元素 HTML 创建 net 客户端 asp 何访问 访问 | 更新日期: 2023-09-27 18:33:59

想象一下,

第 1 步:ASPX 页面加载。
第 2 步:按钮触发一个脚本,该脚本使用 id 或类标记(包括 runat 服务器属性(创建一个 html 元素(div、span 等(。

我的问题是,

最后一步:从我的 C# 文件中,如何访问该元素并获取其内部 html,以便我可以将其保存为字符串?

PS:我将使用该字符串将其保存在我的mssql数据库中。

asp.net:(C# 客户端)如何访问页面加载后创建的 HTML 元素

如果不对服务器执行完全回发,则无法创建"真正的"runat=server 元素/控件。

最好的方法可能是编写一些脚本,在提交页面之前将内部HTML存储到 ASP.Net 隐藏字段中。 然后,您可以访问此隐藏字段的值以获取数据。

如果要动态创建多个对象,则需要改用标准 html 隐藏输入字段,因为无法通过 javascript 创建 asp.net 服务器控件。

<input type="hidden" name="fieldData_1" value="control 1 html content">
<input type="hidden" name="fieldData_2" value="control 2 html content">

然后,您将能够从 Request.Form 对象访问这些隐藏字段:

Request.Form["fieldData_1"]

知道了这一点,您现在可以迭代表单数据并处理所有动态字段

foreach (string fieldData in Request.Form)
{
    if(fieldData.Contains("fieldData_"){
        //process the data for each field
    }
}

也可以避免一起使用隐藏字段,而只需使用 __doPostback('', ''( 方法将数据直接传递给服务器。 这可以通过许多不同的方式实现,所以我只推荐你阅读 http://dopostback.net,了解该方法是如何工作的。

runat="server"属性添加到标记中,使其成为 HTML 控件,并且可以通过其 ID 从.cs文件访问

我认为您需要将元素内部HTML发布回服务器。在客户端函数中,我要做的是获取新创建元素的内部 HTML,将其存储在隐藏字段中,然后调用 __doPostBack('<hidden element id>', '');