如何在Web窗体中访问GridView Templete字段的属性

时间:2015-05-13 11:29:42

标签: c# .net gridview webforms

我在 WebForms GridView 上有 .NET 项目。 GridView填充了我的数据库中的数据。数据库的列名为密码,但在GridView上,此列设置为 Visible =“False”。当我单击命令按钮时,编辑所有框已准备好填充新数据,但列密码不可见

我的问题是:当我点击编辑时,如何(或者我可以)使用密码显示密码并准备填写文本框中的新密码,但我也不想显示其他密码当然。我可以通过摘要访问此 TempleteField / ItemTemplete 的某些属性吗?

1 个答案:

答案 0 :(得分:2)

无需设置Visible="false"属性。只需欺骗GridView即可在正常显示模式下隐藏列,并在编辑模式下显示列。


假设Password列是第三列,处理GridView的RowDataBound事件以隐藏此列:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            // Just return in case GridView is rendering in Edit Mode
            if (GridView1.EditIndex >= 0)
                return;

            // In case GridView is rendering in Normal state
            // Hide the Columns you don't want to display
            if ((e.Row.RowState == DataControlRowState.Normal ||
                 e.Row.RowState == DataControlRowState.Alternate) &&
            ( e.Row.RowType == DataControlRowType.DataRow || 
              e.Row.RowType == DataControlRowType.Header))
            {
                // Hide the Password Column
                e.Row.Cells[2].Visible = false;
            }
        }

如果您使用TemplateField作为密码列,可以使用GridView的DataBound事件将其隐藏为:

protected void GridView1_DataBound(object sender, EventArgs e)
{
       if (GridView1.EditIndex >= 0)
            return;
       GridView1.Columns[2].Visible = false;            
}

现在,当GridView进入编辑模式时(单击编辑按钮等),它将在编辑模式下显示Password列。