虽然我更改了标签的文本,但它仍然返回初始值,我该如何解决
Although I change the text of label it still returns initial value, how can I solve?
尽管我将文本分配给标签(lblDoc),但对于
<%FillRpt(rpt, lblDoc.Text , UserId);%>
lblDoc.文本为标签。
<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);%>
},
});
是的,您正在更新客户端浏览器上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(....)
相关文章:
- 如何解决Yii中的页面刷新问题
- 测试Angular Service解决错误回调中的promise
- 如何解决Access Control Allow Origin错误
- 如何解决这种情况下的非法调用类型错误
- 简单的ES6承诺问题-交换解决和拒绝参数
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- iPad虚拟键盘-哪一个-javasctript解决方案
- 在ES6 Promise中,我应该在解决/拒绝之前使用return吗
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 如何解决'窗口未定义'终端上的节点JS出错
- Angularjs:如何在使用'解决'在$routeProvider中
- 可以't解决Javascript错误
- AJAX HTTP基本身份验证解决方案
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 如何解决此错误
- 在chrome web商店中打开时,是否有允许执行内容/后台脚本的解决方案
- CORS故障无法解决jquery,laravel5.2
- RxJS等待承诺解决
- Angular的ui-router,可以在其他解决之前解决一个身份验证检查