2017-02-22 61 views
0

Привет, я хочу обновить значение texbox из базы данных без обновления страницы. Я попытался обновить значение текстового поля без обновления страницы, обновляя значение без обновления страницы, но он не правильно привязан к этому текстовому полю.Как обновить значение текстового поля без обновления страницы с помощью ajax в mvc

Мой контроллер

public ActionResult PageRefresh() 
    { 
     return View(); 
    } 
    [HttpGet] 
    public JsonResult GetDateTime() 
    { 
     var date = db.SYNCs.Select(e => new { currentdataimport = e.SDT }).FirstOrDefault(); 
     var currentDataimporttime = date.currentdataimport; 
     var finalvalue = new { success = true, time = currentDataimporttime.ToString() }; 
     return Json(finalvalue,JsonRequestBehavior.AllowGet); 
    } 

Мой View Code

<table> 
    <tr> 
    <td id="Refreshtable"> 
     <input type="text" id="Dateimporttime" /> 
    </td> 
    </tr> 
    </table> 

    <script src="~/Scripts/jquery-1.10.2.min.js"></script> 
    <script> 
    $(function() { 
    $.ajax({ 
     type: "GET", 
     url: '@Url.Action("GetDateTime","Page")', 
     datatype: "Json", 
     success: function (data) { 
      $("#Dateimporttime").val(data.time) 
      } 
     }); 
     }); 
    </script> 
    <script type="text/javascript"> 

    $(function() { 
    setInterval(function() { $('#Refreshtable').load('/Page/GetDateTime'); }, 50000), 
     $("#Dateimporttime").val(data.time) 
}); 
</script> 

Здесь первым я загрузить значение текстового поля с помощью Ajax. Затем я устанавливаю функцию перезагрузки для этой конкретной таблицы специально textbox. Затем снова загружаю последнее значение, которое находится в db в это текстовое поле.

Но его не обновляет значение в текстовом поле. Обновляет значение, но не связывается в этом текстовом поле. Кто-нибудь скажет мне, какую ошибку я сделал и исправил свою ошибку. Я попробовал свой уровень, чтобы объяснить эту проблему. Любой понимает мою проблему и даю решение для моей проблемы.

Предварительная благодарность.

+0

Вы хотите обновить эту дату через 5 секунд? – Usman

+0

Нет Мне нужно как минимум 15 до 30 минут –

ответ

1

ваш сценарий должен быть, как это

<script> 
    $(document).ready(function(){ 
    new updatedate(); 
    }); 

    function updatedate() { 
    $.ajax({ 
     type: "GET", 
     url: '@Url.Action("GetDateTime","Page")', 
     datatype: "Json", 
     success: function (data) { 
      $("#Dateimporttime").val(data.time); 
      setTimeout(function(){updatedate();}, 15 * 60 * 1000); 

      } 
     }); 
     }; 
    </script> 

то, что я делаю здесь я создал функцию с именем updatedate, которая получает дату из JSON и заселить его в textbox тогда я использовал набор тайм-аут на успех, что после того, как при первом запуске он установит значение и установит значение setTimeout, что означает, что он напомнит updatedate через 5 секунд (вы можете увеличить время)

+0

Можете ли вы объяснить свой код и сообщить мне, что нужно что-то менять в текстовом коде. потому что u использовал обновленную функцию, поэтому я слегка запутался, вы можете объяснить свой код? –

+0

@snehasusan ответить обновлено – Usman

+0

нормально, я попробовал и даю вам знать, как установить 15-30 минут. –