0

私はこのようなコードを持っています

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

2 番目のアラートが表示されると、lblBookmarksIds の値が変更されましたが、分離コード関数 btnInvokeImageRead_Click でデバッグすると、lblBookmarksIds の値が古い値になります。

誰もがなぜ知っていますか?

よろしくヴォイチェフ

4

2 に答える 2

0

ASP.NET がTextBoxおよび同様のコントロールに入力された値を「見る」ことができるのは、これらのコントロールの値がPOST、ページがポストバックされるときに本文で送信されるためです。これは、ブラウザーに含まれている可能性が高い開発者ツールや、Fiddler などのインターセプト プロキシなど、さまざまなツールで確認できます。ポストバックが発生すると、これらの各コントロールにはLoadPostData、データを処理し、コントロールのプロパティ (または任意のプロパティ) をPOST更新する関数があります。Text

の内容はデータでLabel送信されないPOSTため、.NET は JavaScript からの変更を確認する方法がありません。

投稿データを処理するコントロールはすべて を実装しIPostBackDataHandlerます。

于 2012-09-18T18:18:40.253 に答える
0

ラベルはコード ビハインドに渡されません。そのためには、input(TextBox) を使用する必要があります。

CSS を使用して、入力をラベルのようにスタイル設定できます。

または、非表示フィールドに値を保持し、javascript を使用して値をラベルに表示し、非表示フィールドに戻すこともできます。

于 2012-09-18T18:15:43.837 に答える