Member 14741008 Ответов: 1

Как автоматически загружать данные из базы данных mysql и отображать их в таблице, пока страница прокручивается вниз в моем ASP.NET проект?


The below code is the cs code of my project

 [WebMethod]
public static string alertfun(string DeviceID)
{
    DataSet ds = new DataSet();
    string db = DeviceID.ToLower().Trim();
    string IPAddress = ConfigurationManager.AppSettings["IPAddress"].ToString();
    string strcon = "SERVER=" + IPAddress + "; DATABASE=" + db + "; UID=" + db +
    "DB_123;PASSWORD=" + db + "@PW_123;";
    MySqlConnection conn = new MySqlConnection(strcon);


    string query_date = "SELECT `device_id` , `pf_update_time`,
     DATE_FORMAT(date_time, ' %T %d/%m/%Y') AS date_time  FROM
    `settings_alert_time` ORDER BY id DESC LIMIT 10 ";

    try
    {
        MySqlDataAdapter adp1 = new MySqlDataAdapter(query_date, conn);

        adp1.Fill(ds, "alertValues");

    }
    catch (Exception ex)
    {

    }

    return ds.GetXml();

}



 The below code is my jquery and ajax code to append the values

 function alertfun() {

    var device = $("[id*='dp2'] :selected").val();
    $.ajax({
        type: "POST",
        url: "../PFSettings/pfreports.aspx/alertfun",
        data: '{DeviceID: "' + device + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccessalert,
        failure: function () {
            $('#loader').css('display', 'none');
        }

       });
      }


   function OnSuccessalert(response) {
      $('#loader').css('display', 'none');
      var xmlDoc = $.parseXML(response.d);
      var xml = $(xmlDoc);
      var mapdata = xml.find("alertValues");
      $(mapdata).each(function () {

        var time_update="";

        var time = $(this).find("pf_update_time").text();
        if (time >= 60) {

            time = time / 60;
            time_update = time + " hr";

        }
        else {
            time_update = time + " Mins";
        }

        $('#alertTable').append('<tr><td>' + $(this).find("device_id").text() +
       '</td><td>' + time_update  + '</td><<td>' + $(this).find("date_time").text()
        +'</td>/tr>');


       });

      }


Что я уже пробовал:

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

1 Ответов

Рейтинг:
0

lmoelleb

Конечно, есть проблемы с вашим "рабочим" кодом (преобразование в XML и использование find в строке может показаться разумным решением... но только потому, что вы не знаете о том, как это обычно делается). Но игнорируя это (как вы видите вещи на экране, я думаю), вам понадобится что-то вроде следующих изменений:

Серверный
Вы можете добавить необязательный параметр "from" в свой веб-метод (или иметь два отдельных метода). Этот параметр "from" содержит последний известный идентификатор на веб-стороне. Затем вы можете изменить SQL-запрос, чтобы возвращать только те данные, где идентификатор меньше, чем "from".
Вам нужно будет узнать о параметрах SQL-запроса. Или какой-нибудь шутник просто удалит ваш стол с помощью SQL-инъекция (да, вы должны погуглить это и узнать об этом).

Привлекательный Исключение и просто игнорировать его с пустым блоком, как вы делаете в своем коде C#, - отличная идея, если вы ненавидите пользователей и всех, кто имеет несчастье иметь дело с кодом (в обоих случаях это, конечно, может быть вы сами). Если цель кода не состоит в том, чтобы сделать жизнь невыносимой, то не используйте пустые блоки catch. Блоки Catch следует использовать, когда вы можете обработать ошибку и восстановить ее - или создать новое исключение с дополнительной информацией, чтобы помочь в устранении неполадок. Возвращая пустой ответ, вы ничего не восстанавливаете, а просто скрываете его.

Когда вещи ломаются (а это не так если это когда) вы будете пытаться выяснить, что идет не так. Подробности в исключении будут пытаться рассказать вам, но у вас нет способа увидеть это. Вначале вам будет трудно понять сообщения об исключениях, но вы научитесь, и они станут вашей самой большой помощью при устранении неполадок - так что начните учиться читать их сразу же.

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

На веб - сайте
Вам нужно определить, когда страница прокручивается до конца (или близко к концу). Когда это происходит, вам нужно запросить следующий набор данных - убедитесь, что вы не продолжаете запрашивать одни и те же данные снова и снова, если пользователь быстро прокручивает вверх и вниз. Как только данные вернутся, вы можете добавить их на свою HTML-страницу.