【问题标题】:Find header value for a cell in a grid查找网格中单元格的标题值
【发布时间】:2012-08-30 08:29:08
【问题描述】:

我有 gridview,我想对其行进行 foreach 并 从列标题中获取值,其中该行中的一个单元格有一个标签。

foreach (GridViewRow mainRow in grid1.Rows)
{
    var header = mainRow.Cells[2].Parent.FindControl("LabelID");//is null
}

如何找到它?

【问题讨论】:

    标签: c# asp.net header grid findcontrol


    【解决方案1】:

    如果你想要 RowDataBound 事件中的值,那么你可以像这样检查 RowType

    if(e.Row.RowType == DataControlRowType.Header)
    {
        Label header = (Label)e.Row.FindControl("LabelID");
    }
    

    【讨论】:

      【解决方案2】:

      我会访问 headerRow枚举相应的单元格(在 buttonClickRowDataBound 上。 .)

      default.aspx

      <asp:GridView AutoGenerateColumns="false" ID="GridView1" runat="server">
          <Columns>
              <asp:TemplateField>
                  <HeaderTemplate>
                      <asp:Label ID="headerLabel1" runat="server" Text="Headercolumn1"></asp:Label>
                  </HeaderTemplate>
                  <ItemTemplate>
                      <asp:Label ID="itemLabel1" runat="server" Text='<%# Eval("name") %>' />
                  </ItemTemplate>
              </asp:TemplateField>
          </Columns>
      </asp:GridView>
      <asp:Button ID="btnGetHeader" runat="server" Text="GetHeader" OnClick="btnGetHeader_Click" />
      

      default.aspx.cs

      protected void btnGetHeader_Click(object sender, EventArgs e)
      {
          foreach (TableCell headerCell in GridView1.HeaderRow.Cells)
          {
              // or access Controls with index 
              //     headerCell.Controls[INDEX]
              Label lblHeader = headerCell.FindControl("headerLabel1") as Label;
              if (lblHeader != null)
                  Debug.WriteLine("lblHeader: " + lblHeader.Text);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-09-04
        • 2022-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-13
        • 1970-01-01
        • 2020-05-23
        相关资源
        最近更新 更多