我在 WebForms 和 GridView 上有 .NET 项目。 GridView填充了我的数据库中的数据。数据库的列名为密码,但在GridView上,此列设置为 Visible =“False”。当我单击命令按钮时,编辑所有框已准备好填充新数据,但列密码不可见。
我的问题是:当我点击编辑时,如何(或者我可以)使用密码显示密码并准备填写文本框中的新密码,但我也不想显示其他密码当然。我可以通过摘要访问此 TempleteField / ItemTemplete 的某些属性吗?
答案 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
列。