none
ASP.NET .Взаимодействие JavaScript с серверным кодом и базой данных.

    Вопрос

  • Приветствую.

    Исходная задача: При перезагрузки страницы получить информацию из базы данных и в дальнейшем обрабатывать её с помощью JavaScript на стороне клиента. 

     Реализовал следующим образом.

    1. На стороне сервера скачал текст из базы данных в специально только для этого созданный элемент TextBox1. 

    2. Прочитал JavaScript- ом  TextBox1.Техт.

    Иными словами ТехtBox1.Text послужил "мостиком" , "глобальной переменной" между серверным кодом и базой данных с одной стороны и клиентским сценарием с другой.  Вариант хоть и рабочий, но не оптимальный так как приходится специально только для этого создавать лишний элемент ТехтBox1.

    Возможно кто подскажет правильный способ взаимодействия JS c серверным кодом и базой данных. Отмечу , что для моей задачи не нужно постоянного взаимодействия JS c базой данных .( О существовании Node.js знаю). Объем необходимой информации из базы данных для JS можно получать при перегрузке страницы.

     
    <script runat="server">
       protected void Page_Load(object sender, EventArgs e)
        {
    	
    // получаю текст из базы данных
    	TextBox1.Text=GridView1.Rows[0].Cells[2].Text;
    }
    
    </script>
    
     <script type="text/javascript">
            
    // читаю и обрабатываю текст JavaScript-oм
    var tx = document.getElementById("TextBox1").value;
    
       </script>


    Фоновое изображение


    10 августа 2018 г. 10:16

Ответы

  • Вместо TextBox можно использовать HiddenField. И не обязательно лепить для каждого значения отдельный: можно, скажем, сделать словарь со всеми данными, сериализовать его, и запихать полученный XML/JSON  в одно HiddenField.

    Но в целом да, это похоже на изврат. Более современный подход - это создать веб-сервис, и на клиенте работать с ним через XMLHttpRequest.


    10 августа 2018 г. 10:56

Все ответы

  • Вместо TextBox можно использовать HiddenField. И не обязательно лепить для каждого значения отдельный: можно, скажем, сделать словарь со всеми данными, сериализовать его, и запихать полученный XML/JSON  в одно HiddenField.

    Но в целом да, это похоже на изврат. Более современный подход - это создать веб-сервис, и на клиенте работать с ним через XMLHttpRequest.


    10 августа 2018 г. 10:56
  •  Cпасибо. Использование HiddenField освобождает от дополнительного кода для сокрытия ненужных ТеxtBox - ов. В принципе если есть способ добраться с помощью JS до нужного значения элемента GridView1.Rows[0].Cells[2].Text; (или другого элемента для работы с базами данных, лучше неотображаемого) то и HiddenField не нужен.

    Фоновое изображение

    10 августа 2018 г. 12:15