Значение набора данных в Jquery C# - PullRequest
1 голос
/ 15 февраля 2020

У меня есть одна страница, на которой URL содержит значение строки запроса.

QSecID = 164 & QTempId = 55 & QSecName = Новый% 20Temp% 20Bt

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

$(document).ready(function() {

      function getUrlParameter(name) {
        name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
        var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
        var results = regex.exec(location.search);
        return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
      };
      var urlName = getUrlParameter('QSecName');
      alert(urlName);
      getImageData(urlName); //Pass Query String Value to Function
      });   

Теперь я передаю это значение на страницу C# ASPX.CS и пытаюсь получить данные на основе QSecName. Но я получил ошибку. Вот моя Jquery функция.

function getImageData(name) {

  // alert(nextDay);
  $.ajax({

    type: "POST",

    url: "Section.aspx/GetImageData",

    //data: '',
    data: JSON.stringify({
      "dataSecName": name
    }),

    contentType: "application/json; charset=utf-8",

    dataType: "json",

    success: function(data) {
      alert("Success");
      alert(JSON.parse(data.d));

    }

  });
}

Моя C# страница возвращает набор данных в Jquery.

[WebMethod()]
public static string GetImageData(string dataSecName)
//public static string GetRole()
{
  clsSection objSectNew = new clsSection();
  DataSet DS = new DataSet();
  DS = objSectNew.GetImageDataByJQ(dataSecName);
  return JsonConvert.SerializeObject(DS);
}

Редактировать код 1 Вот мое SQL утверждение, которое получается выполняется, когда я запускаю страницу и

DS = objSectNew.GetImageDataByJQ(dataSecName);

этот метод передает значение строки запроса для выполнения хранимой процедуры.

select mhp.ImageName,mhp.HotSpotID,imgdetail.XCordinate,imgdetail.YCordinate
        from tbl_SOAPDetailsInfo e inner join  M_ImageHotSpot mhp on e.ImgHotSpotName=mhp.ImgHotSpotNameByUser 
        inner join M_ImageHotSpotDetail imgdetail on mhp.HotSpotID=imgdetail.HotspotIDFK where e.SOAP_D_Name='New Temp Bt'

Я хочу использовать мои XCordinate, YCordinate и ImageName для отображения изображения с использованием jquery. но внутри окна предупреждения BOX

**[object] [object]**

отображается ошибка. Как я могу получить и назначить это значение X И значение Y и отобразить в DIV. Редактировать код 2

ImageName               XCordinate  YCordinate
$parent in angularjs.png    1146    590
$parent in angularjs.png    1216    588
$parent in angularjs.png    1188    626
$parent in angularjs.png    1162    582
$parent in angularjs.png    1193    586

Значение базы данных. JSON ФОРМАТНЫЕ ДАННЫЕ

{"d":"{\"Table\":[{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1146\",\"YCordinate\":\"590\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1216\",\"YCordinate\":\"588\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1188\",\"YCordinate\":\"626\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1162\",\"YCordinate\":\"582\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1193\",\"YCordinate\":\"586\"}]}"}

1 Ответ

0 голосов
/ 15 февраля 2020

Так что по вашему вопросу [object] [object] не является ошибкой. Это означает, что вы не можете получить его правильным способом.

Хотя я не уверен, какие данные вы отправляете из своего внутреннего кода в data Но вы можете попробовать следующим образом,

     var data = "{\"Table\":[{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1146\",\"YCordinate\":\"590\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1216\",\"YCordinate\":\"588\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1188\",\"YCordinate\":\"626\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1162\",\"YCordinate\":\"582\"},{\"ImageName\":\"$parent in angularjs.png\",\"ImagePath\":\"~/Administration/imageHotspot/$parent in angularjs.png\",\"HotSpotID\":11,\"XCordinate\":\"1193\",\"YCordinate\":\"586\"}]}"

            var obj = JSON.parse(data);

            console.log(obj.Table);
            var tableObj = obj.Table

            console.log(obj.Table);

            var arrayLength = tableObj.length;

            for (var i = 0; i < arrayLength; i++) {
                console.log(tableObj[i].ImageName);
                console.log(tableObj[i].XCordinate);
                console.log(tableObj[i].YCordinate);
                alert(tableObj[i].YCordinate);
               }

Так что теперь, если вы замените код на приведенный выше пример, ваш код должен выглядеть следующим образом:

 function getImageData(name) {
            // alert(nextDay);
            $.ajax({
                type: "POST",
                url: "Section.aspx/GetImageData",
                data: JSON.stringify({
                    "dataSecName": name
                }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    var obj = JSON.parse(data);

        console.log(obj.Table);
        var tableObj = obj.Table

        console.log(obj.Table);

        var arrayLength = tableObj.length;

        for (var i = 0; i < arrayLength; i++) {
            console.log(tableObj[i].ImageName);
            console.log(tableObj[i].XCordinate);
            console.log(tableObj[i].YCordinate);
            alert(tableObj[i].YCordinate);
                }

            });
        }

Примечание: Попробуйте отладить в браузере console вы бы поняли нотацию объекта более подробно.

Посмотрите на снимок экрана, как бы вы это сделали

enter image description here

Надеюсь, что это будет помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...