我正在使用asp.net c#,我希望实现的是当用户在表单上的文本框中单击以隐藏标签时(我使用此标签进行反馈)。
我正在尝试类似下面的代码,但标签永远不会隐藏:
hiddenMsg.Visible = true;
.
.
.
private void compTxt_TextChanged(object sender, EventArgs e)
{
if (!IsPostBack)
{
hiddenMsg.Visible = false;
}
}
在我的aspx文件中,我有以下内容:
<asp:TextBox ID="compTxt" runat="server" TabIndex='11' AutoPostBack="true" ontextchanged="compTxt_TextChanged" ></asp:TextBox>
[更新了我的问题]
我正在使用Javascript来实现我的目标,而且我在JS中使用style.display属性而不是Visible = false以实现这一点,但是我不确定我在asp中使用的方法:TextBox,Can任何人都帮助我如何从asp:TextBox调用JavaScript方法?
function hideMsgs() {
document.getElementById('<%= hiddenMsg.ClientID %>').style.display = 'none';
}
<asp:Label ID="hiddenMsg" runat="server" Text="Successfully Saved" style="display:inherit;"/>
<asp:TextBox ID="compTxt" runat="server" TabIndex='11' OnClientClick="hideMsgs()"/>
答案 0 :(得分:2)
摆脱IsPostBack检查,它将永远是一个回发。
private void compTxt_TextChanged(object sender, EventArgs e)
{
hiddenMsg.Visible = false;
}
对于客户端解决方案,请在页面加载中
protected void Page_Load(object sender, EventArgs e)
{
compTxt.Attributes.Add("onclick", "document.getElementById('hiddenMsg').style.display = 'none';");
}
如果您在项目中使用母版页,请在页面加载中使用此行:
compTxt.Attributes.Add("onclick", "document.getElementById('" + hiddenMsg.ClientID + "').style.display = 'none';");
答案 1 :(得分:0)
点击客户端不会导致回发。您需要回发来处理该代码。我建议使用javascript来处理您的点击事件,以便您可以隐藏您的标签客户端。然后不需要回发。