2016-12-02 68 views
0

我希望將輸入標籤類型=「text」設置爲不可見/可見,但使用runat =「server」如何將html輸入文本控件設置爲隱藏在代碼後面,使用runat =「server」輸出

下面是什麼編碼

$(document).ready(function() { 
       SearchText(); 
      }); 
      function SearchText() 
      { 
       $(".autosuggest").autocomplete({ 
        source: function (request, response) { 
         $.ajax({ 
          type: "POST", 
          contentType: "application/json; charset=utf-8", 
          url: "CalenderDetails.aspx/GetAutoCompleteData", 
          data: "{'Col3':'" + document.getElementById('txtSearch').value + "'}", 
          dataType: "json", 
          success: function (data) { 
           response(data.d); 
          }, 
          error: function (result) { 
           alert("Error"); 
          } 
         }); 
        } 
       }); 
      } 
     </script> 







    <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /> 
       <br /> 
     <input type="text" id="txtSearch" class="autosuggest" /> 
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" > 

        <ContentTemplate> 
         <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label> &nbsp;&nbsp;&nbsp; 

         <br /> 
         <br /> 
         <asp:GridView ID="Gr 

idView1" runat="server" AllowPaging="True" PageSize="20" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound"> 
         <HeaderStyle BackColor="#FFCC99" /> 

        </asp:GridView> 

       </ContentTemplate> 
       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="GridView1" EventName="PageIndexChanging" /> 
        <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" /> 
       </Triggers> 
      </asp:UpdatePanel> 

代碼背後

[WebMethod] 
    public static List<string> GetAutoCompleteData(string Col3) 
    { 
     List<string> result = new List<string>(); 
     if ((dtClone != null) && (dtClone.Rows.Count > 0)) 
     { 
      DataRow[] foundRows; 
      string expression = "Col3 LIKE '%" + Col3 + "%'"; 

      // Use the Select method to find all rows matching the filter. 
      foundRows = dtClone.Select(expression); 
      for (int i = 0; i < foundRows.Length; i++) 
       result.Add(foundRows[i][2].ToString()); 
     } 
     return result; 

    } 

如果我使用RUNAT = 「服務器」 我能使其可見/不可見但隨後阿賈克斯呼叫將不會執行搜索操作

任何機構可以告訴如何克服這個問題?

+0

你可以在代碼後面調用jQuery方法 –

+0

任何人都可以幫忙嗎? –

回答

0

您很難弄到兩件東西一起工作,即runat="server"ajax calltextbox相同。

您可以使用ClientIDMode="Static"這將不會更改文本框的id,您將能夠發送ajax調用。

<asp:TextBox ID="txtSearch" ClientIDMode="Static" runat="server"></asp:TextBox> 
0

你可以使用jQuery和使用下面的代碼,

function clicked(){ 
 
    console.log("sf"+$("#grand").css("visibility")) 
 
    if($("#grand").css("visibility")=="visible"){ 
 
$("#grand").css("visibility","hidden"); 
 
    } 
 
    else{ 
 
$("#grand").css("visibility","visible"); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="hello" id="grand"> 
 
<input type="button" value="hide/show" onclick="clicked()">

+0

編輯原代碼 –

0

首先,如果你真的不想要RUNAT = 「服務器」 添加到您的按鈕。

它是正確的,你可以將Web方法到服務器端,

,並在客戶端,你可以申請AJAX調用您的Web方法。

爲了達到隱藏HTML控件在服務器端,

你可以嘗試申請的ScriptManager和jQuery,加入到這個Web方法。

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "clientScript", "$(':text').toggle()", true); 

如果隱藏/顯示type =「text」沒有條件,可以使用切換。

否則,你可以實現你的要求的條件,並呼籲顯示和隱藏表單上的控件

$(':text').show() 

$(':text').hide() 

+0

已編輯的代碼我已經使用了所有的aspx控件「txtSearch」只是html控件。我想隱藏/顯示後面的代碼上的按鈕單擊事件的txtSearch控制 –

相關問題