2014-05-13 58 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从代码隐藏,您必须启用它在什么地方,你想再次使用它之前。否则,当页面运行时你将看不到它。

相关问题