【发布时间】:2014-03-01 14:41:19
【问题描述】:
Page 中有两个按钮,btnCall 按钮隐藏了 hideDiv。和 Button1 显示 hideDiv。现在在 div 里面有一个按钮 Button2 显示一些文本。
当我单击 Button2 时,它会在标签中显示一些文本。然后,如果我隐藏所有 div 隐藏。然后,当我使 div 可见时,它会显示 div。但是标签中的文本是可见的,虽然我还没有点击按钮。我不希望标签显示任何文本。我可以通过将标签文本设为空字符串来做到这一点。我不想那样做。我想重新加载 div 以便标签中不显示任何内容,除非我单击 Button2。
我该怎么做?
我的 aspx 代码
<form id="form1" runat="server">
<asp:Button ID="btnCall" runat="server" Text="Call1" OnClick="btnCall_Click" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button2" />
<div class="hideDiv">
<asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
后面的代码
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCall_Click(object sender, EventArgs e)
{
StringBuilder strScript = new StringBuilder();
strScript.Append("$(document).ready(function(){");
strScript.Append("$(\".hideDiv\").hide();");
strScript.Append("});");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", strScript.ToString(), true);
}
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder strScript = new StringBuilder();
strScript.Append("$(document).ready(function(){");
strScript.Append("$(\".hideDiv\").show();");
strScript.Append("});");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", strScript.ToString(), true);
}
protected void Button2_Click(object sender, EventArgs e)
{
Label1.Text = "Some Text";
}
【问题讨论】:
-
看起来你在服务器端做的事情应该在客户端发生。如果使用按钮的 OnClientClick 事件并从 JavaScript 返回 false,则可以直接执行 JavaScript 函数而不会导致回发。
-
mason 在服务器端怎么做?
-
我想你误解了我的意思。您不需要在服务器端发生这种情况,因为它不需要服务器交互。尝试从服务器端进行操作只会使事情变得不必要地复杂化。尝试纯粹在客户端进行。
标签: javascript jquery asp.net