2016-05-23 10 views
0

ich mit asp.net arbeite webmethed i einen Rückgabewert erhalten möchten, und legen Sie es auf TextfeldUnable Wert von asp.net (Webmethode) zu erhalten und diesen Wert auf Textbox gesetzt jquery mit

<asp:TextBox ID="TxtSearch" runat="server" placeholder="Search Order" Width="150px"></asp:TextBox> 

<input type="submit" name="btn_search" id="btn_search" value="Search"> 

wenn ich bin auf einen Klick in Submit-Button es WEBMETHOD geht, aber ich bin nicht nicht in der Lage Daten von ihm zu bekommen und stellen sie es auf Textfeld

<asp:TextBox ID="TxtOrder" runat="server" Width="150px"></asp:TextBox> 

Meine Methode unter

gegeben
[WebMethod] 
     public static List<Search> Search_Order(string TxtSearch) 
     { 
      db_class Connstring = new db_class(); 

      try 
      { 

       DataTable dt = new DataTable(); 
       List<Search> SearchItem = new List<Search>(); 

       dt = Connstring.SqlDataTable(@"SELECT  OrderNo, Date, CustomerName, ProductID, Price, Total, Quantity, Product_Name FROM Order_Details WHERE OrderNo='" + TxtSearch + "'"); 

       foreach (DataRow dtrow in dt.Rows) 
       { 
        Search SearchDeatils = new Search(); 
        SearchDeatils.Product_Name = dtrow["Date"].ToString(); 
        SearchDeatils.ProductID = dtrow["CustomerName"].ToString(); 
        SearchDeatils.Product_Name = dtrow["OrderNo"].ToString(); 
        SearchItem.Add(SearchDeatils); 
       } 

       return SearchItem; 
      } 
      catch (Exception) 
      { 
       throw; 
      } 
     } 
     public class Search  //For Order search 
     { 
      public string Date { get; set; } 
      public string CustomerName { get; set; } 
      public string OrderNo { get; set; } 
      public string ProductID { get; set; } 
      public string Price { get; set; } 
      public string Total { get; set; } 
      public string Quantity { get; set; } 
      public string Product_Name { get; set; } 
     } 

Und Skript ist

$(window).load(function() { 

       $("#btn_search").live('click', function() { 
        $.ajax(
         { 
          type: "POST", 
          url: "MasterDetails.aspx/Search_Order", 
          data: "{TxtSearch: '" + $('#TxtSearch').val() + "'}", 
          contentType: "application/json; charset=utf-8", 
          dataType: "json", 
          success: function (Result) { 
          alert('Get Data from DB');        
          $.each(Result.d, function() 
          { 
          document.getElementById('#TxtOrder').value = value.OrderNo;         
          }); 
          } 
         }); 
       }); 

     }); 
+0

weil Dies ist wäre zu tun, ändert sich IDs asp.net steuert, wenn sie in die gerendert werden DOM. Verwenden Sie also eine der Optionen in der obigen Antwort. – Krishna

Antwort

0

Ein paar Dinge zu beachten:

  1. Sie müssen clientidmode=static bei HTML-Serversteuer und ClientIDMode=Static bei ASP.NET verwenden, steuert, wenn Sie versuchen, zu verwenden die IDs auf der Client-Seite. Dies liegt daran, Client-ID und Server-ID sind nicht unbedingt das gleiche in ASP.NET

    <asp:TextBox ID="TxtOrder" runat="server" Width="150px" ClientIDMode="Static" ></asp:TextBox> 
    
  2. Wenn Sie das folgende tun:

    $.each(Result.d, function(){ 
        document.getElementById('#TxtOrder').value = value.OrderNo;         
    }); 
    

    Sie sind das gleiche Eingangselement bekommen (das Textfeld mit . id=TxtOrder immer wieder und es unterschiedliche Werte zuweisen

  3. auch die value.OrderNo ist ich in der Funktion undefiniert denke stattdessen so etwas wie:.

    $.each(Result.d, function (key, value){ 
        document.getElementById('#TxtOrder').value = value.OrderNo;         
    }); 
    

    Als Seite beachten, wenn Sie bereits jQuery verwenden, die jQuery Weg, dies $("#TxtOrder").val(value.OrderNo);

+0

ist meine Methode ok !. –

+0

Implementieren Sie die obigen Änderungen und sehen Sie. Lass es mich wissen im Falle von Problemen. – Chintan

+0

Ich habe nichts in meinem Textfeld (TxtOrder) –