0

我正在使用 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 中使用的方法,谁能帮助我关于如何从 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()"/>
4

2 回答 2

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';");
于 2013-01-24T13:34:35.650 回答
0

点击客户端永远不会导致回发。您需要回发来处理该代码。我建议使用 javascript 来处理您的点击事件,以便您可以隐藏您的标签客户端。然后不需要回发。

于 2013-01-24T13:35:39.780 回答