繁体   English   中英

虽然我更改了标签的文本,但它仍返回初始值,但如何解决?

[英]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解密

作为备选:

  1. 不断更改代表Labelspan标签的文本

  2. 添加一个隐藏字段,然后在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM