2017-01-17 4 views
0

Существует много решений для этого, но я думаю, что это немного другое.Обнаружение изменения текстового поля после асинхронного обратного вызова из C#

Поле «Estado» (State) справа, автоматически заполняется после нажатия на строку решетки. Я хочу скрыть/показать значки в зависимости от этого поля.

Я попытался с atribbute OnChange, но не работает, он должен быть написан «вручную» Я также попытался с некоторыми функциями Jquery с этой страницы, но его не обнаруживает событие Наконец, я попытался изменить видимость значков из файла cs, но не синхронная, клиент не получает событие.

Что еще я могу сделать?

Большое спасибо

(1)

(2)

Fusion это просто основа, так же, как текстовое поле с большим количеством функций

<Fusion:CampoTexto runat="server" onChange="alerta();" ID="campoEstadoTarjeta" Requerido="false" Width="200" CssClass="Campo" 


<script> 
    function alerta(){ 
     alert("asd" 
    } 
</script 

Это не будет работать:

$(document).ready(function() { 
      $('#campoEstadoTarjeta').change(function() { alert('test'); }); 
     }); 
+0

Отредактировано @SimonPrice – user3294339

ответ

0

попробовать что-то подобное, и это должно работать для вас

<Fusion:CampoTexto runat="server" ID="campoEstadoTarjeta" Requerido="false" Width="200" CssClass="Campo" 

$("#campoEstadoTarjeta'").keyup(function(){ 
    alert("this works"); 
}); 

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

Если вы ищете другое текстовое поле, чтобы иметь это значение, то вы могли бы сделать что-то вроде этого

$("#campoEstadoTarjeta'").keyup(function(){ 
    $("#myOtherTextBox").val($("#campoEstadoTarjeta'").val()); 
}); 
-1

JavaScript слушателей будут потерян после асинхронной PostBack в контроле находится внутри UpdatePanel. Вам необходимо перерегистрировать свой TextBox.

Оберните привязку слушателя к функции.

<script type="text/javascript"> 
    bindFunction(); 

    function bindFunction() { 
     $("#<%= campoEstadoTarjeta.ClientID %>").keyup(function() { 
      alert('test') 
     }); 
    } 
</script> 

Затем вызовите эту функцию после Async PostBack.

protected void ButtonInsideUpdatePanel_Click(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "bindFunction", "bindFunction();", true); 
}