4

ラベル(lblDoc)にテキストを割り当てますが、

<%FillRpt(rpt, lblDoc.Text , UserId);%>

lblDoc.Text はラベルです。

<asp:Label ID="lblDoc" runat="server" Text="Label" Visible="false"></asp:Label>

Text 値を変更しましたが、それでも「Label」が返されます。どうすれば変更できますか?

ケースは以下です。

 $.ajax({
                type: "POST",
                url: "FileManager.aspx/foo",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    $("#<%=lblDoc.ClientID%>").text(selectedPath);
                    <%FillRpt(rpt, lblDoc.Text , UserId);%>
                },
          });
4

3 に答える 3

2

はい、クライアント ブラウザーでコントロールのクライアント表現をLabel更新していますが、この値は次の 2 つの理由でサーバー コードで読み取られません。

  • ページで HTML 投稿を行うと、フォーム入力フィールドのみがサーバーに送信され、Labelコントロールは としてレンダリングされる<span id="<ClientID>">ため、スパンのコンテンツはデータとしてサーバーに送信されません。

  • spanコンテンツ タグがサーバーに送信された場合でも、その値はViewStateに格納されている値で上書きされます。Label

上記の理由により、あなたのコードはあなたが試みているようには機能しません。また、(私の知る限り) ViewStateJavaScript を使用してフィールドを復号化することはできません。

別の方法として:

  1. spanを表すタグのテキストを変更し続けるLabel

  2. 隠しフィールドを追加し、LabelJavaScript でテキストを変更するときに、この隠しフィールドに同じ値を複製します。最後に、サーバー コードでこの値を使用してLabel.Textプロパティを変更します。

于 2012-07-30T02:22:14.750 に答える
0

なぜ <% タグが必要なのですか? あなたはできるはずです:

$("#lblDoc").text(selectedPath);
于 2012-07-30T01:36:50.763 に答える
0

JSONデータを返すWebメソッドを使用して問題を解決します。
それとその後

  $.ajax({
                type: "POST",
                url: 
                data: 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                   //.........
                    });
                },
                error: function(msg) {

                },
            });

成功の部分では、やりたいことをします。たとえば、次のようなタグにデータを追加します

$("#stackOverflow").append(....)
于 2012-07-31T07:29:48.073 に答える