2016-09-19 2 views
0

У меня есть Default.aspxКак передать переменную QueryString в JQuery Ajax

<asp:Button ID="showOrderbtn" runat="server" Text="ShowOrder" 
      onclick="showOrderbtn_Click"/> 

И Default.aspx.cs

protected void showOrderbtn_Click(object sender, EventArgs e) 
{ 
    var d = txtSearchCustomerByID.Value; 
    Response.Redirect("Default2.aspx?id=" + d); 
} 

Здесь я имею идентификатор клиента в текстовое поле

Теперь, как я могу передать «id» в jQuery Ajax в Default2.aspx.

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "Default2.aspx/showOrders", 
     data: {ID:ID}, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: Onsuccess, 
     error: Onerror 
    }); 
}); 

мне нужно иметь "идентификатор" в готовой функции JQuery передается от Default.aspx.cs

Я реализовал showOrders в Default2.aspx.cs.

спасибо!

+0

Вы хотите получить это от url? Если так получить его из 'window.location.pathname' – feeeper

+0

Я хочу« id », предоставленный Response.Redirect, и хочу, чтобы он был готов (функция .. –

+0

Задайте значение id в« Hiddenfield »из кода за страницей и получите его значение в готовой функции. –

ответ

0

Вы можете использовать ниже скрипт для получения и установки значений строки запроса:

<script type="text/javascript"> 
     // Create a common method for getting querystring Parameter value from jQuery 
     function getUrlVars() { 
      var vars = [], hash; 
      var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
      for (var i = 0; i < hashes.length; i++) { 
       hash = hashes[i].split('='); 
       vars.push(hash[0]); 
       vars[hash[0]] = hash[1]; 
      } 
      return vars; 
     } 

     $(document).ready(function() { 
      var queryStringValue = getUrlVars()["id"];//Pass your Querystring parameter 
      $.ajax({ 
       type: "GET", 
       url: "Default2.aspx/showOrders", 
       data: { ID: queryStringValue }, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (successData) { }, 
       error: function (errorData) { } 
      }); 
     }); 
    </script> 

Надеюсь, это вам поможет.

Thanks

+0

Пожалуйста, поддержите и отметьте решение, если оно вам поможет ... Спасибо :) –

+0

Спасибо! Это сработало. –

+0

Это отличная благодарность –

0

Почему мы не передаем строку запроса веб-методу и просто перенаправляем страницу, которую вы хотите на странице aspx. Давайте посмотрим !!!

В * .aspx

<script> 
     function getParameterByName(name) { 
      var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search); 
      return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); 
     } 

     $(function() { 
      //q=QueryString Name 
      var id = getParameterByName('q'); 
      console.log(id); 
      //if (id === null) { 
      //  id = "test"; 
      // } 
      var data = JSON.stringify({ ID: id }); 
      $(document).ready(function() { 
       $.ajax({ 
        type: "POST", 
        url: "*.aspx/showOrders", 
        data: data, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(data) { 
         var d = data.d; 
         window.location = "Default2.aspx?id=" + d; 
        } 
      }); 
      }); 
     }); 
    </script> 

и в * .aspx.cs

[WebMethod] 
public static String showOrders(String ID) 
{ 
    //Do some work an logic here 
    return ID; 
} 

и .aspx страница Полная страница

<div> 
     <asp:Button ID="showOrderbtn" runat="server" Text="ShowOrder" 
      ClientIDMode="Static"/> 
    </div> 
    <script> 
     function getParameterByName(name) { 
      var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search); 
      return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); 
     } 

     $(function() { 

      $('#showOrderbtn').on('click', function(e) { 
        e.preventDefault(); 
        alert('In button click'); 
        var id = getParameterByName('q'); 
        console.log(id); 
        if (id === null) { 
         id = "test"; 
        } 
        var data = JSON.stringify({ ID: id }); 
        $.ajax({ 
         type: "POST", 
         url: "IframeWithPowerBi.aspx/showOrders", 
         data: data, 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 
         success: function (data) { 
          var d = data.d; 
          window.location = "Default2.aspx?id=" + d; 
         } 
      }); 


     }); 
     }); 
    </script> 
+0

Я еще не пробовал ваше решение !! Но кажется, это совершенно правильно !! Только то, что я хочу спросить - вы не делаете это на событии нажатия кнопки, не так ли? И какая функция успеха будет делать - вызывает ли это по умолчанию Default2.aspx? –

+0

См. Мой обновленный ответ –

+0

Можете ли вы уточните, что «window.location =» Default2.aspx? id = «+ d;» будет делать? –

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