2014-05-13 100 views
0

在我的Web應用程序中,我需要一個功能,以便當用戶單擊文本框輸入值時,它應該使按鈕和其他字段可見?如何在asp.net中實現文本框上的點擊事件?

我使用下面提供的代碼,但無法使其工作。

C#:

protected void TextBox1_Click(object sender, EventArgs e) 
{ 
    ButtonSearch.Visible = true; 
} 

ASP.Net:

<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" OnClick="TextBox1_Click"></asp:TextBox> 
<asp:Button ID="ButtonSearch" runat="server" OnClick="ButtonSearch_Click" Text="Search" Visible="False" /> 

如何做到這一點?

感謝

回答

2

Set AutoPostback="True"。這樣,事件將被觸發服務器端,並且該按鈕將變爲可見。

<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"  OnClick="TextBox1_Click" AutoPostBack="true"></asp:TextBox> 

但是,如果你只想要一個按鈕的視覺效果,你真的應該體貼的javascript。這將節省一次返回服務器的時間。

<asp:TextBox onclick="txtBox1_ClientClicked()" ID="TextBox1" runat="server" OnClick="TextBox1_Click"></asp:TextBox> 

<asp:Button ID="ButtonSearch" runat="server" OnClick="ButtonSearch_Click" Text="Search" style="display:none;" /> 

<script type="text/javascript"> 
    function txtBox1_ClientClicked(){ 
     var theButton = document.getElementById('<%=ButtonSearch.ClientID%>'); 
     theButton.style.display = 'block'; 
    } 
</script> 
+0

不起作用... – user1144852

0

[jQuery的](http://jquery.com/)是你的問題的完美解決方案。

的代碼將是這樣的:

$("#TextBox1").on("click",function(){$("#ButtonSearch").css("visibility", "visible");}) 

您包含腳本通過將<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>頁面,然後你可以在<script></script>標籤添加一段代碼上面。

希望這會有所幫助。

+0

這個問題看起來很愚蠢,但是,我從來沒有使用過jQuery應該添加這部分代碼嗎? – user1144852

+0

我已經更新了答案。讓我知道這是否回答你的問題。 –

0

你不需要回發到服務器來完成你的工作。例如,您可以使用客戶端onFocus事件和javascript/jquery。

我知道我用文本類型的輸入,並且您使用的是ASP的控制服務器上的哪些文章,但這裏是一個的jsfiddle讓你在正確的軌道上:http://jsfiddle.net/Mmjtz/1/

0
$("<%= ButtonSearch.ClientID %>").click(function(){ 
$("#TextBox1").show(): 
}); 

在此代碼您需要傳遞您想要在點擊按鈕時可見的字段ID。

0

將文本框放入div中,並使用代碼隱藏中的divonClick事件。這不是你問的問題,但它適用於我,沒有任何錯誤。這裏是一個javascript函數來實現請求的事件:

function toggleVisibility() 
{ 
document.getElementById('TextBox1').disabled = true; 
      /* 
      ...some other code... 
      */ 
} 

當然,你必須在div定義實現這個JS函數之後,定義onclick事件。

<div id="TBdiv" onClick="toggleVisibility()"> 
<asp:TextBox ID="TextBox1"..../> 
</div> 

重要:因爲現在禁用了TextBox從代碼隱藏,您必須啓用它在什麼地方,你想再次使用它之前。否則,當頁面運行時你將看不到它。

相關問題