我正在使用一个 gridview,它根据下拉列表中的选择从 SQL 数据库中提取数据。源表有六列用于选择的属性,但根据选择的内容,可能会有一到六列为空(全部为空值)。当该列为空时,我希望将其隐藏,以便页面不那么笨重和混乱。
在过去的几天里,我一直在寻找答案,但到目前为止我发现的要么是隐藏你知道为空但我不知道的列,要么是在 SQL 代码中删除它们,但我认为这不是如果在 gridview 代码中调用该列并且查询中不存在该列,则该列有效。
我对 ASP.NET 很陌生,所以如果我的一些术语不正确,我很抱歉!如果您对我的问题有任何疑问,请告诉我。
在此先感谢您的帮助!
你可以尝试:
- 设置gridview将所有列隐藏(
Visible="false"
)
- 在gridview的RowDataBound事件中,检查每个列的值,如果有数据,则将列设置为显示(
Visible="true"
)
RowDataBound 方法可能如下所示:
void YourGridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// if this is a SqlDataSource you can use DataRowView,
// otherwise use whatever type is used in the data source
DataRowView rowView = (DataRowView)e.Row.DataItem;
if (!String.IsNullOrEmpty(rowView["ColumnA"]))
YourGridview.Columns[0].Visible = true;
// repeat for your other columns
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)