我有一个asp.net标签网页控件。我使用jQuery .html()函数动态更改其文本。当我尝试在服务器上获取标签的当前值时,它会显示从加载页面时的原始值。有没有什么办法可以让jQuery更改为永久标签,以便我可以在服务器上找到它们?
答案 0 :(得分:1)
您需要将JQuery更改镜像到另一个将在服务器端存在的控件。
例如,使用已归档的隐藏字段runat="server"
将您的更改隐藏到此处,然后这将保留在服务器上,即从隐藏字段中读取标签更改
所以
<强> JQuery的强>
$('#labelID').html('New Text');
$('#hiddenFieldID').val('New Text');
服务器端
string labelText = hiddenFieldID.value;
它不漂亮,但这是我发现它的唯一方法。
JQuery不与ViewState
交互,因此JQuery的任何更改都会在回发时丢失。这是我认为人们现在走向MVC的原因之一。回发体系结构不适合客户端更改
答案 1 :(得分:0)
我认为你不能开箱即用(虽然我可能错了)。问题是标签不是HTML表单字段,因此它的值不会在回发时发送回服务器,因此将使用ViewState值或默认值,而不是更新的值。
你可以将一些东西放在一起,你也可以在一个隐藏字段中设置标签值,它会在回发时被发送回服务器并使用它来回传标签上的标签值,如果它已被更改?