我有一个asp.net标签web控件。我使用jQuery .html()函数动态更改它的文本。当我尝试获取服务器上标签的现值时,它会显示页面加载时的原始值。有没有办法使标签的jQuery更改成为永久性的,这样我就可以在服务器上获取它们?
发布于 2012-05-08 17:39:08
您需要将您的JQuery更改镜像到服务器端的另一个控件中。
例如,使用mared runat="server"
隐藏字段将您的更改隐藏到此字段中,然后此更改将在服务器上保留,即从隐藏字段读取标签更改
所以
JQuery
$('#labelID').html('New Text');
$('#hiddenFieldID').val('New Text');
服务器端
string labelText = hiddenFieldID.value;
这不是很漂亮,但这是我找到的唯一方法。
JQuery不与ViewState
交互,因此JQuery的任何更改在回发时都会丢失。这是我认为人们现在转向MVC的原因之一。回发体系结构不能很好地处理客户端更改
发布于 2012-05-08 17:38:25
我不认为你可以开箱即用(尽管我可能是错的)。问题是标签不是HTML表单域,因此它的值不会在回发时发送回服务器,因此要么使用ViewState值,要么使用默认值,而不是更新后的值。
你可以在隐藏字段中设置标签值,在回发时将其发送回服务器,并在回发时使用该值填充回发时的标签值?
https://stackoverflow.com/questions/10496069
复制相似问题