如果我不以最全面的方式表达这一点,请原谅我,我是.net的新手。
我要做的是:在网格视图外部有一个复选框,一旦选中,将网格视图更新为仅显示具有特定值的行。在这种情况下,"是"或"否"。一旦用户选中该复选框,它将仅显示列值为" YES"的行。
我更希望以不需要重新创建整个网格视图的方式执行此操作,而只显示具有" YES"的行。它们的价值。这就是我到目前为止所做的一切,我不知道我是否走在正确的道路上:
protected void chkbox_Click(object sender, EventArgs e)
{
AppError curError = null;
User curUser = null;
if (chkboxlbl.Checked == true) //if checked then jump into next step
{
foreach (GridViewRow row in GridViewAppts.Rows)
{
// not sure what to put here yet.
}
}
}
答案 0 :(得分:2)
通过迭代每一行,你只需要再做一步就可以通过将行可见性设置为false
来实现目标:找出哪个列/单元索引" NO"值已设定。
您可以使用以下两种可能的解决方案之一来隐藏包含" NO"某些列/单元格索引中的值:
1)使用foreach
循环
foreach (GridViewRow row in GridViewAppts.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
// 'n' belongs to column index, starting from leftmost column = 0
if (row.Cells[n].Text == "NO")
{
row.Visible = false;
}
}
}
2)使用for
循环
for (int i = 0; i < GridViewAppts.Rows.Count; i++)
{
// 'n' belongs to column index, starting from leftmost column = 0
if (GridViewAppts.Rows[i].Cells[n].Text == "NO")
{
GridViewAppts.Rows[i].Visible = false;
}
}
答案 1 :(得分:1)
将行的Visible属性设置为False。
if(GridViewRow.Column = "NO")
GridViewRow.Visible = False;
答案 2 :(得分:0)
你可以尝试:
row.Attributes["style"] = "display:none";
如果这不起作用那么我会重新绑定。你也可以做客户端。