【问题标题】:setting label value in javascript在javascript中设置标签值
【发布时间】:2012-09-18 18:09:39
【问题描述】:

我有这样的代码

 <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 中,我试图设置标签的值并调用代码隐藏函数,以便我将所需的值传递给代码隐藏:

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();
            }

当显示第二个警报时,lblBookmarksIds 的值已更改,但是当我在代码隐藏函数 btnInvokeImageRead_Click 中调试时,lblBookmarksIds 的值具有其旧值。

有人知道为什么吗?

问候 沃伊切赫

【问题讨论】:

    标签: javascript asp.net webforms


    【解决方案1】:

    标签不会传递给后面的代码。为此,您将不得不使用输入(文本框)。

    您可以使用 CSS 为输入设置样式,使其看起来像一个标签。

    或者,您可以将值保留在隐藏字段中,并使用 javascript 在标签中显示值并将其传递回隐藏字段。

    【讨论】:

      【解决方案2】:

      ASP.NET 之所以能够“看到”输入到TextBox 和类似控件中的值,是因为这些控件的值在页面回发时在POST 正文中发送。您可以通过任意数量的工具看到这一点,包括您的浏览器可能包含的开发工具或 Fiddler 之类的拦截代理。当回发发生时,这些控件中的每一个都有一个LoadPostData 函数来处理POST 数据并更新控件的Text 属性(或任何属性)。

      Label 的内容未在 POST 数据中提交,因此 .NET 无法查看 JavaScript 对其所做的任何更改。

      处理post数据的控件都实现IPostBackDataHandler

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-04
        • 1970-01-01
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-30
        相关资源
        最近更新 更多