我想在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;值!
答案 0 :(得分:2)
html元素的属性永远不会发布到服务器。
您需要执行以下操作:
首先,在“保存”按钮上,不要放任何.NET OnClick方法。只放一个调用保存函数的javascript方法。
其次,在保存功能中,找到所有属性并将它们放在隐藏字段中。如果内容是动态的,您可能希望将其序列化为json并将其放在一个隐藏的字段中。
第三,调用您使用$('#buttonId').click()
附加.NET事件的按钮的click事件。在此活动中,您将能够找到隐藏字段的内容。
答案 1 :(得分:0)
页面元素上的属性(如div)不会回发,因此后面的代码无法读取您使用javascript可能进行的更改。
所以你可以在后面的代码上设置它们,但是如果你用javascript更改它们,就不会发回到代码背后。
要使用HiddenField
发送代码后面的值,请设置您的值,然后在后面的代码中读取它。