虽然我将文本分配给标签(lblDoc),但
<%FillRpt(rpt, lblDoc.Text , UserId);%>
lblDoc.Text是Label。
<asp:Label ID="lblDoc" runat="server" Text="Label" Visible="false"></asp:Label>
我更改了Text值但仍返回“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);%>
},
});
答案 0 :(得分:2)
是的,您正在更新客户端浏览器上<{1}}控件的客户端表示,但由于以下两个原因,不会在服务器代码中读取此值:
当您在页面上执行HTML帖子时,只有表单输入字段被发送到服务器,Label
控件呈现为Label
因此跨度的内容不会作为数据发送到服务器
即使<span id="<ClientID>">
内容标记已发送到服务器,其值也会被 ViewState <中存储的span
值覆盖/强>
由于上述原因,您的代码将无法按照您的方式运行,并且(据我所知)Label
字段无法使用JavaScript解密
作为替代方案:
继续更改代表ViewState
span
标记的文字
添加隐藏字段,当您更改JavaScript中的Label
文本时,在此隐藏字段中复制相同的值,最后,在您的服务器代码中使用此值更改{{1}属性
答案 1 :(得分:0)
为什么需要&lt;%标签?你应该能够做到:
$("#lblDoc").text(selectedPath);
答案 2 :(得分:0)
我通过使用返回JSON数据的Web方法解决了这个问题。
之后
$.ajax({
type: "POST",
url:
data:
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//.........
});
},
error: function(msg) {
},
});
在成功部分,我做我想做的事。例如,我将一些数据附加到任何标记,例如
$("#stackOverflow").append(....)