[英]Although I change the text of label it still returns initial value, how can I solve?
尽管我将文本分配给标签(lblDoc),但是
<%FillRpt(rpt, lblDoc.Text , UserId);%>
lblDoc.Text是Label。
<asp:Label ID="lblDoc" runat="server" Text="Label" Visible="false"></asp:Label>
我更改了“文本”值,但仍返回“标签”。 我该如何更改?
情况如下:
$.ajax({
type: "POST",
url: "FileManager.aspx/foo",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#<%=lblDoc.ClientID%>").text(selectedPath);
<%FillRpt(rpt, lblDoc.Text , UserId);%>
},
});
是的,您正在客户端浏览器上更新Label
控件的客户端表示形式 ,但是由于两个原因,无法在服务器代码上读取此值:
当您在页面上进行HTML发布时,仅表单输入字段被发送到服务器, Label
控件呈现为<span id="<ClientID>">
因此该范围的内容不会作为数据发送到服务器
即使将span
内容标签发送到服务器,其值也将被ViewState中存储的Label
值覆盖。
由于上述原因,您的代码无法正常工作,并且(据我所知) ViewState
字段无法使用JavaScript解密
作为备选:
不断更改代表Label
的span
标签的文本
添加一个隐藏字段,然后在JavaScript中更改Label
文本时,在此隐藏字段中复制相同的值,最后,在服务器代码中,使用此值更改Label.Text
属性
为什么需要<%标签? 您应该可以:
$("#lblDoc").text(selectedPath);
我通过使用返回JSON数据的Web方法解决了问题。
在那之后
$.ajax({
type: "POST",
url:
data:
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//.........
});
},
error: function(msg) {
},
});
在成功部分,我做我想做的。 例如,我将一些数据附加到诸如
$("#stackOverflow").append(....)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.