asp.net:(c#客户端)如何访问页面加载后创建的html元素? [英] asp.net: (c# client-side) how to access html element created after page loads?

查看:96
本文介绍了asp.net:(c#客户端)如何访问页面加载后创建的html元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

想象一下,

第1步:ASPX页面加载。

第2步:按钮触发一个脚本创建一个html元素(div ,span,等)与一个id或class标记,包括runat服务器属性。



和我的问题是,

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



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

解决方案

如果不向服务器做完整的回发,你不能创建一个真正的runat =服务器元素/控件。

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

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

 < input type =hiddenname =fieldData_1value =control 1 html content> 
< input type =hiddenname =fieldData_2value =control 2 html content>

然后您就可以从Request.Form对象中访问这些隐藏的字段:

  Request.Form [fieldData_1] 

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

  foreach(Request.Form中的字符串fieldData)
{
if(fieldData.Contains(fieldData _){
//处理每个字段的数据
}
}

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


Imagine this,

Step 1: ASPX Page Loads.
Step 2: Button fires a script that creates a html element (div, span, etc) with an id or class tag, including runat server attribute.

and my problem is,

Final Step: From my C# file, how to access that element and get it's inner html, so I can save it to a string?

PS: i'll use that string to save it in my mssql database.

解决方案

You cannot create a "real" runat=server element/control without doing a full postback to the server.

The best approach may be to write some script that stores the innerHTML into an ASP.Net hidden field right before you submit the page. You can then access the value of this hidden field to grab the data.

If you're wanting to dynamically create multiple objects, you'll need to use standard html hidden input fields instead, since you can't create asp.net server controls via javascript.

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

You'll then be able to access these hidden fields from the Request.Form object:

Request.Form["fieldData_1"]

Knowing this, you can now iterate over the form data and process all of your dynamic fields

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

It is also possible to avoid using hidden fields all together and just pass your data to the server directly using the __doPostback('', '') method. This could be implemented in many different ways, so I'll just refer you to http://dopostback.net to read up on how the method works.

这篇关于asp.net:(c#客户端)如何访问页面加载后创建的html元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆