【问题标题】:How to check if a GridView contains a certain Button asp.net c#如何检查GridView是否包含某个Button asp.net c#
【发布时间】:2015-09-29 06:27:13
【问题描述】:

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

目前下面的代码仅在 ALL reviewBtn 可见时显示btn_reviewAll。请指教谢谢!

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;
    }
}

【问题讨论】:

  • reviewBtn.Visible 处添加断点并在Quickwatch 中查看您为此控件获得了什么值。
  • @Suprabhat 该值为Text = "Review"

标签: c# asp.net button gridview


【解决方案1】:

像这样改变你的代码

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_reviewAll 设置为可见并中断 foreach 循环

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 2018-02-17
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      相关资源
      最近更新 更多