2015-01-12 3 views
0

Я хочу проблему,Вызов Codebehind Из JavaScript

Попытки это

<script type="text/javascript"> 
    function txtOnKeyPress(txt1) { 
     if (txt1 != 'undefined') { 
      var txt2 = document.getElemejavantById('<%=TxtArama.ClientID %>'); 
      txt2.value = txt1.value; 
      <% Session["Sercert"] = TxtArama.Text;%> 
      //alert(txt2.value); 
      var DTT =<%= GetSearcher("") %>; 
      alert(DTT); 

     } 
    } 
    <%--function CallCodeBehindMethod() { 
     var txt2 = document.getElementById('<%=TxtArama.ClientID %>'); 
     alert(window.PageMethods.GetName(txt2)); 
     //this.GetName(txt2); 
    }--%> 
</script> 

JS является сторона клиента текстового поля Keypress события

И

кода позади события

protected string GetSearcher(String KeyValue) 
    { 
     KeyValue = Session["Sercert"].ToString(); 
     String aa = ""; 
     if (KeyValue.Length > 0) 
     { 
      DataTable DT = new DataTable(); 
      DT = DbClass.GetDataTable("SELECT * FROM Products WHERE ProductName LIKE '%" + KeyValue + "%' LIMIT 10", "MySql"); 

      for (int i = 0; i < DT.Rows.Count; i++) 
      { 
       aa += "<a href=\"" +ReWriterPath(DT.Rows[i]["ProductId"].ToString(), DT.Rows[i]["ProductName"].ToString()) +"\">" +DT.Rows[i]["ProductName"] +"</a><br />"; 
      } 


      RptSearcher.DataSource = DT; 
      RptSearcher.DataBind(); 
      UPLSearcher.Update(); 
     } 
     return aa; 

    } 

Я пытаюсь заполнить данные повторителя этот

<asp:UpdatePanel runat="server" ID="UPLSearcher" UpdateMode="Conditional"> 
             <ContentTemplate> 
              <asp:Literal runat="server" ID="LtrSearcher"></asp:Literal> 
              <asp:Repeater runat="server" ID="RptSearcher"> 
               <ItemTemplate> 

                <a href="<%# ReWriterPath(Eval("ProductId").ToString(), Eval("ProductName").ToString()) %>"><%# Eval("ProductName") %></a><br /> 
               </ItemTemplate> 
              </asp:Repeater> 
             </ContentTemplate> 
            </asp:UpdatePanel> 

Я хочу обновить свой ретранслятор в случае поиска по коду при нажатии на кнопку позади метода. И заново заполните мою панель обновления и перечислите результаты. Но js код и метод работают только на загрузку страницы. и ключ не запускается на код за боковым кодом. Но это //alert(txt2.value); запускать каждый раз при нажатии.

помогите пожалуйста.

+0

Вам нужно написать веб-метод для вызова функции CodeBehind ... – Dhaval

+0

Что об использовании Ajax? –

+0

Что такое 'document.getElemejavantById'? (typo, я думаю :)) – SearchAndResQ

ответ

1

Вы должны создать [WebMethod] в коде позади. чем вы можете вызвать этот метод из javascript.

<script type="text/javascript"> 
    function txtOnKeyPress(txt1) { 

     $.ajax({ 
      type: "POST", 
      url: "/yourpage.aspx/GetSearcher", 
      data: '', // put your data here that you want to pass in server method 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: OnSuccess, 
      failure: function (response) { 
       alert(response.d); 
      } 
     }); 
    } 
    function OnSuccess(response) { 
     //write your code what you want to display on success 
    } 
</script> 

Создайте свой код позади метода

[WebMethod] 
    [ScriptMethod()] 
    public static string GetSearcher(String KeyValue) 
    { //Your code goes here } 
Смежные вопросы