在javascript中设置标签值
我有这样的代码在javascript中设置标签值,javascript,asp.net,webforms,Javascript,Asp.net,Webforms,我有这样的代码 <table> <tr> <td> <div> <asp:Label runat="server" ID="lblBookmarksIds" Style="visibility: hidden;" Text="test"/>
<table>
<tr>
<td>
<div>
<asp:Label runat="server" ID="lblBookmarksIds" Style="visibility: hidden;" Text="test"/>
</div>
</td>
<td>
<asp:UpdatePanel runat="server" ID="buttonPanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button runat="server" ID="btnInvokeImageRead" CausesValidation="false" UseSubmitBehavior="false"
OnClick="btnInvokeImageRead_Click" Style="visibility: hidden;" />
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
在javascript中,我试图设置label的值并调用codebehind函数,以便将所需的值传递给codebehind,如下所示:
alert(document.getElementById('<%= lblBookmarksIds.ClientID%>').firstChild.nodeValue);
document.getElementById('<%= lblBookmarksIds.ClientID%>').innerText = str;
alert(document.getElementById('<%= lblBookmarksIds.ClientID%>').firstChild.nodeValue);
//alert('1');
if (str != "") {
document.getElementById('<%= btnInvokeImageRead.ClientID%>').click();
}
警报(document.getElementById(“”).firstChild.nodeValue);
document.getElementById(“”).innerText=str;
警报(document.getElementById(“”).firstChild.nodeValue);
//警报(“1”);
如果(str!=“”){
document.getElementById(“”)。单击();
}
当显示第二个警报时,LBLBookmarkids的值已更改,但当我在codebehind函数btnInvokeImageRead_中调试时,单击LBLBookmarkids的值将显示其旧值
有人知道为什么吗
问候
Wojciech标签不会传递给代码隐藏。为此,您必须使用输入(文本框) 您可以使用CSS设置输入样式,使其看起来像标签
或者,您可以将该值保留在隐藏字段中,并使用javascript在标签中显示该值,然后将其传递回隐藏字段。ASP.NET能够“查看”的原因输入到
文本框
和类似控件中的值是因为这些控件的值在页面发回时发送到POST
正文中。您可以通过任何数量的工具看到这一点,包括您的浏览器可能包含的开发人员工具,或者像Fiddler这样的拦截代理。发生回发时,这些控件中的每个控件都有一个LoadPostData
函数,该函数处理POST
数据并更新控件的Text
属性(或任何属性)
标签
的内容不会在POST
数据中提交,因此.NET无法查看JavaScript对其所做的任何更改
处理post数据的控件全部实现