如何在jquery移动应用程序中为asp:label赋值
我在标签里有这个代码。 我从代码隐藏处调用此函数setmessage如何在jquery移动应用程序中为asp:label赋值,jquery,.net,jquery-mobile,Jquery,.net,Jquery Mobile,我在标签里有这个代码。 我从代码隐藏处调用此函数setmessage <script type="text/javascript"> function setmessage(msg) { $.mobile.changePage( "#pagethree", { transition: "slideup", changeHash: true }); document.getElementById('<%= lbl_msg.ClientID %>').Text
<script type="text/javascript">
function setmessage(msg) {
$.mobile.changePage( "#pagethree", { transition: "slideup", changeHash: true });
document.getElementById('<%= lbl_msg.ClientID %>').Text = msg;
}
</script>
你能告诉我为什么没有更新“lbl\u msg”吗。尝试使用:
document.getElementById('<%= lbl_msg.ClientID %>').innerHTML = msg;
或:
而不是:
document.getElementById('<%= lbl_msg.ClientID %>').Text = msg;
document.getElementById将仅在它在DOM中任何位置找到的特定标记id的第一个实例上运行。因此,您需要标识当前页面,然后在该页面上查找所需的id 您可以使用以下代码执行此操作:
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
$("YOUR TARGET ID HERE", activePage)[0].innerHTML = "YOUR TEXT HERE";
还值得注意的是,innerHTML的呈现速度比其他方法(如append)快3倍。因此,它也可能比使用服务器端技术(如.Net)快得多
我还注意到,有时在JQM中触发动作的页面事件会产生巨大的差异。这通常是由于在元素可用于JQuery之前触发了操作。为了调试,请尝试通过pagecontainershow事件或其他事件之一将消息添加到标签。如果消息显示您知道这是一个事件顺序问题,您必须重新考虑脚本。确保同一文档中没有重复的ID。如果每个页面都有相同的ID,那么具有该ID的第一个元素将被更改。是的,我没有相同的ID…我检查了它打印什么?你能给我们看看吗?
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
$("YOUR TARGET ID HERE", activePage)[0].innerHTML = "YOUR TEXT HERE";