如何检查GridView是否包含某个按钮.asp.net c#

本文关键字:包含某 按钮 asp net 是否 GridView 何检查 检查 | 更新日期: 2023-09-27 18:14:53

嗨,我想知道如何检查是否有任何reviewBtn在网格视图中可见,如果任何 reviewBtn存在,btn_reviewAll将可见。

目前下面的代码只显示btn_reviewAll时,ALL reviewBtn是可见的。请告知,谢谢!

foreach (GridViewRow row in GridViewReview.Rows)
{
    Control reviewBtn = row.FindControl("ButtonReview") as Button;
    if (reviewBtn.Visible == true)
    {
       btn_reviewAll.Visible = true;
    }
    else
    {
       btn_reviewAll.Visible = false;
    }
}

如何检查GridView是否包含某个按钮.asp.net c#

像这样修改代码

foreach (GridViewRow row in GridViewReview.Rows)
{
    Control reviewBtn = row.FindControl("ButtonReview") as Button;
    if (reviewBtn.Visible == true)
    {
         btn_reviewAll.Visible = true;
         break;
    }
    else
    {
       btn_reviewAll.Visible = false;
    }
}

它的作用是当一个reviewBtn可见时它会将btn_reviewwall设置为可见并跳出foreach循环

@Shreesha的回答是绝对正确的,你也可以像这样用更少的代码使用LINQ:-

if (GridViewReview.Rows.OfType<GridViewRow>()
                  .Any(b => ((Button)b.FindControl("ButtonReview")).Visible))
      btn_reviewAll.Visible = true;
else
      btn_reviewAll.Visible = false;