2013-09-25 3 views
-3

Я хочу сохранить (обновить) форму из кода позади.сохранить форму по коду за

Я имею в форме редактирования днища

<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" style="color: #FF0000; font-size: medium; font-weight: 700" Text="Update" /> 

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

Как это сделать по коду?

+0

я думаю, что вы имеете в виду «Сохранить» не «безопасный» – Jonesopolis

+0

Какие элементы управления у вас есть в форме, отличной от кнопки отправки ? Трудно сказать, что вы можете использовать для запуска событий обновления, когда мы не знаем, что возможно. – jbaum012

+0

Как насчет фактического размещения кода для формы? Что вы уже пробовали? Что вызывает проблему в том, что вы уже пробовали? – BenjaminPaul

ответ

0

Вы можете добавить Timer на страницу, чтобы ASP причину обратная передача на фиксированный интервал. Затем вы можете присоединить обработчик событий к событию Tick и сохранить там форму.

Это само по себе вызовет полную обратную передачу страницы на каждом интервале; если вы хотите, чтобы сбережение было асинхронным, вы можете обернуть Timer в UpdatePanel, чтобы он выполнил асинхронную обратную передачу. Вы также можете иметь метку в UpdatePanel, а также какой-либо другой элемент управления, чтобы указать, что форма была сохранена.

<asp:UpdatePanel runat="server"> 
    <ContentTemplate> 
     <asp:Timer runat="server" Interval="5000" ID="timer" /> 
     <asp:Label runat="server" ID="lblTimerResponse" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Затем в коде позади все, что вам нужно:

timer.Tick += (s, _) => 
{ 
    SaveForm(); 
    lblTimerResponse.Text = "Form automatically saved"; 
}; 
0

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

Вы можете использовать JavaScript interval или timeout функции для того, чтобы достичь функциональности таймера.

Лично я бы сделал это с использованием рамки jQuery, техники AJAX, interval и serialize функций.

Добавьте следующие строки в разделе head в вашей aspx странице (убедитесь, что form1 это идентификатор вашей формы или изменить его соответствующим образом):

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
    <script type="text-javascript"> 
      var result = self.setInterval(function(){ 
      var $frm = $('#form1'); 
      $.ajax({ 
       type: $frm.attr('method'), 
       url: $frm.attr('action'), 
       data: $frm.serialize(), 
       success: function (msg) { 
        alert("Success"); 
       } 
      }); 
     }, 10000); // Post(update) your form each 10 seconds. 
    </script> 
Смежные вопросы