Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中设置标签值_Javascript_Asp.net_Webforms - Fatal编程技术网

在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数据的控件全部实现