设置为可见时,仅显示错误div?

时间:2013-02-05 14:09:13

标签: c# asp.net

我有一些代码可以在条件下显示警告:

protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in gvGroups.Rows)
    {
        CheckBox cbAdmin = (CheckBox)gvr.FindControl("cbAdmin");
        CheckBox cbRemove = (CheckBox)gvr.FindControl("cbRemove");
        Label lblID = (Label)gvr.FindControl("lblID");
        int id;
        bool idValid = int.TryParse(lblID.Text,out id);
        bool isReadOnly = !cbAdmin.Checked;


        if (idValid)
        {
            Group g = SecurityManager.GetGroup(id);

            if (g.IsReadOnly != isReadOnly)
            {
                bool updateSuccess = SecurityManager.ChangeGroupPermissions(id, isReadOnly);

                var master = Master as KezberProjectManager;
                if (master != null)
                {
                    master.ShowErrorAlert("Sample Error");
                }
            }

            if (cbRemove.Checked)
            {
                bool removeEmpSuccess = SecurityManager.RemoveEmployeesFromGroup(id);
                bool removeSuccess = SecurityManager.RemoveGroup(id);
            }
        }
    }

    BindGrid();

}

这就是:

   public void ShowErrorAlert(string message)
        {
            error_alert.Visible = true;
            lblError.Text = message;
        }

加载母版页时:

   if (!IsPostBack)
        {
            success_alert.Visible = false;
            error_alert.Visible = false;
        }

唯一的问题是,一旦显示警报,即使我下次没有要求它显示,它仍然存在。我需要它的方式是,1调用ShowErrorAlert应该只显示一次,之后,如果我单击保存按钮但没有进行任何更改,那么show方法不会被调用,它不应该显示。

有办法做到这一点吗?

由于

2 个答案:

答案 0 :(得分:2)

如果您只想在一次回发时显示提醒,请在将if (!IsPostBack)success_alert的可见性设置为false之前删除error_alert

Page_LoadbtnSave_Click之前被称为,所以你想先将它们设置为Visible = false;,然后,如果调用了ShowErrorAlert(),它就是'将其更改为true。

答案 1 :(得分:0)

一旦显示警报,代码中就没有选项可以隐藏它,因为你只隐藏它!IsPostback 因此,您可以在默认情况下隐藏按钮单击事件开头的警报,并仅在条件为真时显示警告。