想象一下这个,
步骤1:加载ASPX页面。
步骤2:按钮触发一个脚本,该脚本使用id或class标记(包括runat服务器属性)创建html元素(div、span等)。
我的问题是,
最后一步:如何从 C#文件中访问该元素并获取它的内部html,以便将其保存到字符串中?
PS:我将使用该字符串将其保存在我的mssql数据库中。
发布于 2012-05-13 23:28:05
如果不对服务器执行完整的回发操作,就不能创建“真正的”runat=server元素/控件。
最好的方法可能是在提交页面之前编写一些脚本,将innerHTML存储到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来了解该方法是如何工作的。
发布于 2012-05-13 23:20:15
将runat="server"
属性添加到标记中,使其成为HTML,并且可以通过其ID从.cs文件中访问
发布于 2012-05-13 23:27:48
我认为您需要将元素内部HTML发回服务器。在客户端函数中,获取新创建元素的内部HTML,将其存储在隐藏字段中,然后调用__doPostBack('<hidden element id>', '');
https://stackoverflow.com/questions/10578886
复制相似问题