2012-11-06 2 views
1

Привет всем я пытаюсь получить значение из этикетки здесь в моем коде:ASP.net метка получать значение в коде позади

<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 из „нет“ к „да“ и „текст“ из „нет“ к „да“

enter image description here

изменения ...

enter image description here

ответ

1

1) В файле .aspx оных

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

2) В JS найдите это скрытое поле и обновите его в то же время, когда вы меняете метку.

3) Теперь в коде необходимо прочитать свойство .Value из скрытого поля вместо того, чтобы смотреть на текст метки.

+0

вместо ** asp: Скрытый ** если это не будет ** asp: HiddenField **? – StealthRT

+0

Да, он должен. благодаря! –

+0

Работал отлично после добавления этого вместо метки. Спасибо, Кнаис! – StealthRT

2

Значения меток больше не размещены назад, вы должны использовать скрытое поле. Вы можете использовать ярлыки для отображения значений в браузере клиента, но для отправки значений по обратной передаче вам нужно использовать скрытое поле.

Вы можете использовать input, type = "hidden" или asp: hidden для получения значения метки.

В HTML

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

В JQuery

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

В кодексе за

string strLabelVal = hdnForLabel.Value; 
+1

JQuery часть должна быть : $ ('# <% = hdnForLabel.ClientID%>').val («некоторое значение»); – Nova

0

Похоже, что ваши селекторы ошибаются на первом месте. Когда runat="server" применяется к элементу управления ASP.NET, id добавляется к контейнеру. Так что ваш идентификатор не будет выглядеть так же, как и в HTML .. Так что в таких случаях нужно использовать атрибут начинается с или атрибут имеет селектор

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

Должен быть

$('[id*="check_' + $(this).attr('id') + '"]') 
Смежные вопросы