1

コード内のラベルから値を取得しようとしています。

<div id="chkHaz" data-checked="no">
   <asp:Label ID="lblchkHaz" runat="server" Text="no" ClientIDMode="Static" Style="visibility: hidden; display: none;"></asp:Label>
   <asp:Image ID="check_chkHaz" runat="server" ImageUrl="~/images/chkOFF.png" ClientIDMode="Static" />
</div>

ユーザーがJQueryを介して「チェック」したかどうかに応じて設定します。

$("#chkHaz").click(function (input) {
   if ($(this).attr("data-checked") == "no") {
      $('#check_' + $(this).attr('id')).attr("src", "/images/chkON.png");
      $(this).attr("data-checked", "yes");
      $('#lbl' + $(this).attr('id')).attr("text", "yes");
      $('#lbl' + $(this).attr('id')).html("yes");
   } else {
      $('#check_' + $(this).attr('id')).attr("src", "/images/chkOFF.png");
      $(this).attr("data-checked", "no");
      $('#lbl' + $(this).attr('id')).attr("text", "no");
      $('#lbl' + $(this).attr('id')).html("no");
   }
});

しかし、私がコードビハインドを介してそれをチェックするために行くとき:

Dim strChkHaz As String = lblchkHaz.text & ""

HTML値「no」「yes」に変更し、「text」「no」から「yes」に変更することはわかっていますが、常に「no 」です。

ここに画像の説明を入力してください

に変更...

ここに画像の説明を入力してください

4

3 に答える 3

2

ラベル値はポストバックされません。非表示フィールドを使用する必要があります。ラベルを使用してクライアントブラウザに値を表示できますが、ポストバックで値を送信するには、非表示フィールドを使用する必要があります。

input、type = "hidden"、またはasp:hiddenフィールドを使用して、labelの値を取得できます。

HTMLで

<input type="hidden" runat=server ID="hdnForLabel" />

jqueryで

$('<%= hdnForLabel %>').value = "some value";

コードビハインド

string strLabelVal = hdnForLabel.Value;
于 2012-11-06T16:22:23.833 に答える
1

1).aspxファイルに追加します

<asp:HiddenField runat=server ID="..." />

2)JSで、その非表示フィールドを見つけて、ラベルを変更すると同時に更新します。

3)コードビハインドで、ラベルのテキストを確認する代わりに、非表示フィールドから.Valueプロパティを読み取ります。

于 2012-11-06T16:25:11.873 に答える
0

そもそもセレクターが間違っているようです。がrunat="server"ASP.NETコントロールに適用されると、IDの前にコンテナーが追加されます。したがって、IDはHTMLのIDと同じにはなりません。したがって、このような場合は、属性の開始または属性のセレクターを使用する必要があります。

$('#check_' + $(this).attr('id'))

である必要があります

$('[id*="check_' + $(this).attr('id') + '"]')
于 2012-11-06T16:26:03.627 に答える