2015-11-03 2 views
1

Мне не удается получить значения, переданные $ .ajax на моей странице C#.jqplot - передать переменную через ajax на страницу C#

Я использую jqplot и хочу передать две части информации. Один хранится в скрытом поле под названием «hidden_plateid» и вторая часть информации из выпадающего списка называется «SampleNumberList»

Это скрытое поле

<input type="text" name="hidden_plateID" id="hidden_plateID" hidden="hidden" runat="server" /> 

И это падение вниз поле:

<select name="SampleNumberList" class="DropDownBox_editjob" id="SampleNumberList"> 
    <option value="--SELECT--"></option> 
    <option value="001r">001r</option> 
    <option value="002r">002r</option> 
</select> 

Я просто тогда сказать, что каждый раз, когда кто-то выбирает из выпадающего списка, чтобы получить и получить информацию из БД и построить график

$('#SampleNumberList').on('change', function (e) { 

      var ajaxDataRenderer = function (url, plot, options) { 
       var ret = null; 
       $.ajax({ 
        data: { 
         PlateID2: options.PlateID, 
         SampleID2: options.SampleID, 
        }, 
        async: false, 
        url: url, 
        dataType: "json", 
        success: function (data) { 
         alert(data); 
         ret = data; 
        }, 
        error: function (xhr, err) { 
         alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
         alert("responseText: " + xhr.responseText); 
        } 
       }); 
       return ret 
      }; 

      var jsonurl = "SpectraData.aspx"; 

      var plot2 = $.jqplot('chartdiv', jsonurl, { 
       title: "AMIRA", 
       dataRenderer: ajaxDataRenderer, 
       dataRendererOptions: { 
        unusedOptionalUrl: jsonurl, PlateID: $('#hidden_plateID').val(), SampleID: $('#SampleNumberList').val() 
       } 
      }); 
     }); 

Я использую Request.QueryString, чтобы попытаться получить значение в C# файл, но до сих пор я ничего не получаю

if (Request.QueryString["PlateID2"] != null) 
{ 
    PlateID = Request.QueryString["PlateID2"].ToString(); 
} 

if (Request.QueryString["SampleID2"] != null) 
{ 
    SampleID = Request.QueryString["SampleID2"].ToString(); 
} 

ответ

0

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

$.ajax({ 
        async: false, 
        url: url + "?PlateID2=" + options.PlateID + "&SampleID2=" + options.SampleID + "", 
        dataType: "json", 
        success: function (data) { 
         alert(data); 
         ret = data; 
        }, 
        error: function (xhr, err) { 
         alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
         alert("responseText: " + xhr.responseText); 
        } 
       }); 

В действительности, правильный способ сделать это - передать параметры как строку json и перехватить код позади.

$.ajax({ 
           url: url/Somemethod, 
           type: 'POST', 
           dataType: 'json', 
            data: "{'PlateID2':'" + options.PlateID + "','SampleID2':'" + options.SampleID + "'}", 
           success: function (data) { 
          alert(data); 
          ret = data; 
         }, 
           error: function (xhr, err) { 
          alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
          alert("responseText: " + xhr.responseText); 
         } 
          }); 

В вашем коде:

[WebMethod] 
    public static void Somemethod(string PlateID2,string SampleID2) 
    { 

    } 
+0

Я попытался это, но значение я получаю на C# странице «неопределенное» – Saj

+0

я узнал почему. Мне нужно было вызвать PlateID, используя $ ('# <% = hidden_PlateID.ClientID%>'). Val() – Saj

+0

Обратитесь к обновленному разделу. Использовать объекты json для передачи данных вместо строки request.query – DinoMyte

Смежные вопросы