为了账号安全,请及时绑定邮箱和手机立即绑定

如何在GridView的TemplateField中找到控件?

如何在GridView的TemplateField中找到控件?

C#
繁星点点滴滴 2019-10-21 13:01:31
如何FindControl方法的工作,如果我需要找到任何Control这里面GridView Template,更具体ItemTemplate?我有一个,hyperlink但找不到它。问题已用代码更新GridView 代码如下:<asp:GridView ID="grvYourOpportunities" runat="server" AllowPaging="True" AutoGenerateColumns="False"        DataKeyNames="ID#,B,H" PageSize="20" CellPadding="4" ForeColor="#333333" GridLines="Both"        OnRowDataBound="grvYourOpt_RowDataBound">        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />        <Columns>          <asp:TemplateField>                <HeaderTemplate>                    i                </HeaderTemplate>                <ItemTemplate>                    <%# Eval("i") %>                </ItemTemplate>            </asp:TemplateField>            <asp:TemplateField>                <HeaderTemplate>                    H                </HeaderTemplate>                <ItemTemplate>                    <%--<a href="javascript:ShowChildGrid('div<%# Eval("ID#") %>');">                    <img id="imgdiv<%# Eval("ID#") %>" alt="Click" border="0" src="plus.gif" runat="server" />  </a>  --%>                    <asp:HyperLink runat="server" ID="hlPlus" ImageUrl="~/plus.gif"></asp:HyperLink>                </ItemTemplate>            </asp:TemplateField>            <asp:TemplateField>                <HeaderTemplate>RowDataBound父母的事件GridView如下。如何FindControl方法的工作,如果我需要找到任何Control这里面GridView Template,更具体ItemTemplate?
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

尝试这个:


foreach(GridViewRow row in GridView1.Rows) {

    if(row.RowType == DataControlRowType.DataRow) {

        HyperLink myHyperLink = row.FindControl("myHyperLinkID") as HyperLink;

    }

}

如果要处理RowDataBound事件,则如下所示:


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

    if(e.Row.RowType == DataControlRowType.DataRow)

    {

        HyperLink myHyperLink = e.Row.FindControl("myHyperLinkID") as HyperLink;

    }

}


查看完整回答
反对 回复 2019-10-21
?
暮色呼如

TA贡献1853条经验 获得超9个赞

您可以使用此代码HyperLink在GridView中查找。用于e.Row.Cells[0].Controls[0]在GridView中查找控件的第一个位置。


protected void AspGrid_RowDataBound(object sender, GridViewRowEventArgs e)

{    

  if(e.Row.RowType == DataControlRowType.DataRow)

    {

        DataRowView v = (DataRowView)e.Row.DataItem;           


        if (e.Row.Cells.Count > 0 && e.Row.Cells[0] != null && e.Row.Cells[0].Controls.Count > 0)

        {

            HyperLink link = e.Row.Cells[0].Controls[0] as HyperLink;

            if (link != null)

            {                    

                    link.Text = "Edit";

            }               

        }       


    }

}


查看完整回答
反对 回复 2019-10-21
?
慕森王

TA贡献1777条经验 获得超3个赞

我已经完成了访问单元格控件内的控件的操作。在所有控件集合中查找。


 ControlCollection cc = (ControlCollection)e.Row.Controls[1].Controls;


 Label lbCod = (Label)cc[1];


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 638 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信