2013-05-05 5 views
-1

У меня есть кнопка ссылки, которая вызывает функцию C# 'send_Click' при нажатии. здесь функция:Изменение значения скрытого поля без обратной передачи

void send_Click(object sender, EventArgs e) 
    {   
     Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "text_alert()", true); 
     Response.Write(hidAcrobat.Value); 
    } 

, как вы можете видеть, это вызывает яваскрипт функции «text_alert()», который выглядит следующим образом:

function text_alert() { 
      var person = prompt("Additional Comments:", ""); 
      if (person != null && person != "") { 
       document.getElementById('hidAcrobat').value = person; 
      } 
     } 

который выскакивает незамедлительное окно принимающую пользовательский ввод и настройки значение скрытого поля 'hidAcrobat' для этого значения.

, а затем обратно в C#, следующая строка - Response.write (hidAcrobat.Value); Он записывает значение по умолчанию hidAcrobat и НЕ новое значение, которое было назначено ему в поле подсказки. Я предполагаю, потому что страница не переустановлена, Как я могу это решить?

+0

вам нужно будет понять разницу между клиентской и серверной сторонами. значение, которое вы меняете, находится на стороне клиента. поэтому значение переменной, присутствующей в скрипте на стороне сервера, НЕ изменится, пока вы не измените его, используя либо POST BACK, либо используя AJAX –

+0

, как я могу это сделать с сообщением назад? спасибо –

+0

не могли бы вы дать реальный случай, когда вы используете это. Я не понимаю, почему вы делаете response.write(), когда у вас уже есть значение переменной на стороне клиента. –

ответ

0

Обработать onclick событие кнопки ссылки на стороне клиента (используя javascript) и вызвать метод text_alert() из обработчика.

После выполнения обработчика событий на стороне клиента страница отправляется обратно и на стороне сервера вы можете получить доступ к скрытой переменной, как вы это делаете в обработчике событий send_Click.

+0

Как я могу обработать событие onclick на стороне клиента, если кнопка создается динамически в C#? –

0

Вы можете легко создать подсказку как эффект, используя ModalPopUp, а затем легко получить значение на стороне сервера.

1

Это легко реализуется с помощью Jquery Как этот

<script type="text/javascript" language="javascript"> 

    $(document).ready(function() { 

     $('#MainContent_lnkAddToList').live("click", function() { 
      var person = prompt("Additional Comments:", ""); 
      $('[id*="hidAcrobat"]').val(person); 
     }); 
    }); 

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

Для Jquery добавить ссылки

Надежда Это помогает вам.

Смежные вопросы