ASP.NET - 在运行时访问HTML属性

时间:2014-06-09 20:25:10

标签: jquery asp.net

我想在asp.net页面中使用jquery-tagthis插件。 一切正常,但我无法在运行时访问html属性!

jQuery插件使用"数据值"制作html属性名称。 当我在运行时访问该属性时,它为null! 当我在aspx代码上定义这个属性时,我可以使用初始值访问该属性,而不是通过jquery更改值。 我检查浏览器上的html代码,看起来很好,一切正常,但在服务器端,我已经初始化了值。 我检查Page_Load和其他事件,我无法找到,问题或价值。

我使用了asp:使用runat =" server"但它改变了什么!

ASPX代码:

<asp:Panel ID="Tags" runat="server" data-value="test" ClientIDMode="Static"></asp:Panel>

jQuery更改值(工作正常,因为我在使用开发人员工具时看到浏览器上的新值)

$("#Tags").attr('data-value', commadelimitedTags);

C#代码背后:

string t = Tags.Attributes["data-value"];

在Page_Load和ASP:Button On Click事件中,它仅返回&#34; test&#34;值!

2 个答案:

答案 0 :(得分:2)

html元素的属性永远不会发布到服务器。

您需要执行以下操作:

首先,在“保存”按钮上,不要放任何.NET OnClick方法。只放一个调用保存函数的javascript方法。

其次,在保存功能中,找到所有属性并将它们放在隐藏字段中。如果内容是动态的,您可能希望将其序列化为json并将其放在一个隐藏的字段中。

第三,调用您使用$('#buttonId').click()附加.NET事件的按钮的click事件。在此活动中,您将能够找到隐藏字段的内容。

答案 1 :(得分:0)

页面元素上的属性(如div)不会回发,因此后面的代码无法读取您使用javascript可能进行的更改。

所以你可以在后面的代码上设置它们,但是如果你用javascript更改它们,就不会发回到代码背后。

要使用HiddenField发送代码后面的值,请设置您的值,然后在后面的代码中读取它。