How to find Control in TemplateField of GridView?

隐身守侯 提交于 2019-11-26 03:34:54

问题


How does FindControl method works if I need to find any Control which is inside GridView Template, more specifically ItemTemplate?

I have a hyperlink but it is not able to find the same.

Question updated with code

GridView Code is below:

<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>
                    B
                </HeaderTemplate>
                <ItemTemplate>
                    <%--<%# Eval(\"B\") %>--%>
                    <a href=\"javascript:ShowChildGridForBCol(\'div1<%# Eval(\"ID#\") %>\');\">
                        <img id=\"imgdiv1<%# Eval(\"ID#\") %>\" alt=\"Click here\" border=\"0\" src=\"tempY.png\" />
                    </a>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    ID.Nr.
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"ID#\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Entry Date
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Entry Date\") %>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderStyle-Width=\"20px\" ItemStyle-Width=\"20px\">
                <HeaderTemplate>
                    BU
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"BU\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    BE
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"BE\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Product Family
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Product Family\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Project Name
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Project Name\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    SOP
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"SOP\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Award Date
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Award Date\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Milestone Next Date
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Milestone Next Date\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Contract Status
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Contract Status\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Prob.Of Success
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"ProbSuccess\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Key Account
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Key Account\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Sales SubRegion
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Sales SubRegion\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Growth
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"Growth\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Sales p.a.OE mio$
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"SalesOE\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    Sales p.a.AM mio$
                </HeaderTemplate>
                <ItemTemplate>
                    <%# Eval(\"SalesAM\")%>
                </ItemTemplate>
            </asp:TemplateField>
            <%--GridView 2, 3--%>
            <asp:TemplateField>
                <ItemTemplate>
                    <tr>
                        <td align=\"left\" style=\"margin-left: 10px;\" colspan=\"5\">
                            <div id=\"div<%# Eval(\"ID#\") %>\" style=\"display: none; position: relative; left: 110px;\">
                                <asp:GridView ID=\"GridView2\" runat=\"server\" Width=\"40%\" AutoGenerateColumns=\"false\"
                                    DataKeyNames=\"Entry Date\" EmptyDataText=\"No orders for this customer.\" CellPadding=\"0\"
                                    ForeColor=\"#333333\" GridLines=\"Both\">
                                    <HeaderStyle BackColor=\"#5D7B9D\" Font-Bold=\"True\" ForeColor=\"White\" />
                                    <RowStyle BackColor=\"#F7F6F3\" ForeColor=\"#333333\" />
                                    <HeaderStyle CssClass=\"header\" />
                                    <RowStyle CssClass=\"row\" />
                                    <Columns>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"ID#\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Entry Date\") %>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"ID#\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField ItemStyle-Wrap=\"false\">
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Other Text\") %>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                    </Columns>
                                </asp:GridView>
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td align=\"left\" colspan=\"19\">
                            <div id=\"div1<%# Eval(\"ID#\") %>\" style=\"display: none; position:relative; left: 110px;\">
                                <asp:GridView ID=\"GridView3\" runat=\"server\" AutoGenerateColumns=\"false\" DataKeyNames=\"Entry Date\"
                                    EmptyDataText=\"No orders for this customer.\" CellPadding=\"0\" ForeColor=\"#333333\"
                                    GridLines=\"Both\" Width=\"100%\">
                                    <HeaderStyle BackColor=\"#5D7B9D\" Font-Bold=\"True\" ForeColor=\"White\" />
                                    <RowStyle BackColor=\"#F7F6F3\" ForeColor=\"#333333\" />
                                    <%--<HeaderStyle CssClass=\"header\" />
                                    <RowStyle CssClass=\"row\" />--%>
                                    <Columns>

                                        <%--<asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                            </ItemTemplate>
                                        </asp:TemplateField>--%>

                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"ID#\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                       <%-- <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Entry Date\") %>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField HeaderStyle-Width=\"20px\" ItemStyle-Width=\"20px\">
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"BU\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"BE\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Product Family\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Project Name\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"SOP\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Award Date\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Milestone Next Date\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Contract Status\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"ProbSuccess\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Key Account\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Sales SubRegion\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"Growth\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"SalesOE\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:TemplateField>
                                            <HeaderTemplate>
                                            </HeaderTemplate>
                                            <ItemTemplate>
                                                <%# Eval(\"SalesAM\")%>
                                            </ItemTemplate>
                                        </asp:TemplateField>--%>
                                    </Columns>
                                </asp:GridView>
                            </div>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

The RowDataBound event of the parent GridView is as below;

Protected void grvYourOpt_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string colId = grvYourOpportunities.DataKeys[e.Row.RowIndex].Values[0].ToString();
        string colB = grvYourOpportunities.DataKeys[e.Row.RowIndex].Values[1].ToString();
        string colH = grvYourOpportunities.DataKeys[e.Row.RowIndex].Values[2].ToString();

        #region \"Commented Code for Col.B\"

        //if (colB == \"Y\")
        //{
        //    e.Row.Cells[2].Text = \"<img src=\'tempY.png\'>\";

        //}
        //else
        //{
        //    e.Row.Cells[2].Text = \"<img src=\'tempN.png\'>\";
        //}
        #endregion

        #region \"Commented code for Col.H\"

        if (colH == \"1\")
        {
            e.Row.Cells[1].Text = string.Empty;
            //e.Row.Cells[1].Text = \"<a href=\'\'> <img id=\'13\' alt=\'Click\' border=\'0\' src=\'plus.gif\'/> </a>\";
            string js = string.Format(\"javascript:ShowChildGrid(\'div{0}\');\", colId);
            HyperLink lnk = (HyperLink)e.Row.FindControl(\"hlPlus\");
            if (lnk!=null)
            {
                lnk.NavigateUrl = js;
                lnk.ImageUrl = \"plus.gif\";
                lnk.Visible = true;
            }
            //Page.ClientScript.RegisterStartupScript(this.GetType(), \"HCol\", \"ShowChildGrid(\"+ colId + \");\", true);
        }
        else
        {
            e.Row.Cells[1].Text = string.Empty;
            e.Row.Cells[1].Text = \"\";
        }
        #endregion

        DataTable dt1 = new DataTable();
        DataTable dt2 = new DataTable();

        DataRow dr1 = null;
        DataRow dr2 = null;
        DataRow dr3 = null;
        DataRow dr4 = null;
        DataRow dr5 = null;
        DataRow dr7 = null;

        DataRow r = dt1.NewRow();

        DataSet ds1 = new DataSet();
        DataSet ds2 = new DataSet();

        dt1.TableName = \"Opportunity1\";

        dt1.Columns.Add(new System.Data.DataColumn(\"ID#\", typeof(System.String)));
        dt1.Columns.Add(new System.Data.DataColumn(\"Entry Date\", typeof(System.String)));
        dt1.Columns.Add(new System.Data.DataColumn(\"Other Text\", typeof(System.String)));
        ds1.Tables.Add(dt1);

        dt2.Columns.Add(new System.Data.DataColumn(\"ID#\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Entry Date\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"BU\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"BE\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Product Family\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Project Name\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"SOP\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Award Date\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Milestone Next Date\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Contract Status\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"ProbSuccess\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Key Account\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Sales SubRegion\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"Growth\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"SalesOE\", typeof(System.String)));
        dt2.Columns.Add(new System.Data.DataColumn(\"SalesAM\", typeof(System.String)));
        ds2.Tables.Add(dt2);

        dr2 = dt1.NewRow();
        dr3 = dt1.NewRow();
        dr4 = dt1.NewRow();
        dr5 = dt1.NewRow();

        dr1[\"ID#\"] = \"\";
        dr2[\"ID#\"] = \"\";
        dr3[\"ID#\"] = \"\";
        dr4[\"ID#\"] = \"\";
        dr5[\"ID#\"] = \"\";

        dr1[\"Entry Date\"] = \"18/01/2010\";
        dr2[\"Entry Date\"] = \"19/01/2010\";
        dr3[\"Entry Date\"] = \"20/01/2010\";
        dr4[\"Entry Date\"] = \"21/01/2010\";
        dr5[\"Entry Date\"] = \"14/01/2010\";

        dr1[\"Other Text\"] = \"17:25CET changed by\"; // - product family: ABS, Milestone Date: 23.02.1022, Contract Status: Signed, Probability of success: 100%\";
        dr2[\"Other Text\"] = \"18:44CET changed by\"; //- product family: ABS, Milestone Date: 23.02.1022, Contract Status: Signed, Probability of success: 100%\";
        dr3[\"Other Text\"] = \"19:25CET changed by\"; //- product family: ABS, Milestone Date: 23.02.1022, Contract Status: Signed, Probability of success: 100%\";
        dr4[\"Other Text\"] = \"14:25CET changed by\"; //- product family: ABS, Milestone Date: 23.02.1022, Contract Status: Signed, Probability of success: 100%\";
        dr5[\"Other Text\"] = \"11:25CET changed by\"; //- product family: ABS, Milestone Date: 23.02.1022, Contract Status: Signed, Probability of success: 100%\";

        dt1.Rows.Add(dr1);
        dt1.Rows.Add(dr2);
        dt1.Rows.Add(dr3);
        dt1.Rows.Add(dr4);
        dt1.Rows.Add(dr5);

        GridView gv12 = (GridView)e.Row.FindControl(\"GridView2\");
        gv12.DataSource = ds1.Tables[0];
        gv12.DataBind();

        for (int i = 0; i < gv12.Rows.Count; i++)
        {
            gv12.RowStyle.BackColor = System.Drawing.Color.Gray;
        }


        dr7 = dt2.NewRow();

        dr7[\"ID#\"] = \"11-0101\";
        dr7[\"Entry Date\"] = \"19/01/2010\";
        dr7[\"BU\"] = \"VDC\";
        dr7[\"BE\"] = \"ASES\";
        dr7[\"Product Family\"] = \"Car Air Systems\";
        dr7[\"Project Name\"] = \"Example\";
        dr7[\"SOP\"] = \"09/08/2011\";
        dr7[\"Award Date\"] = \"10/2011\";
        dr7[\"Milestone Next Date\"] = System.DateTime.Today.ToString(\"dd.MM.yyyy\");
        dr7[\"Contract Status\"] = \"won\";
        dr7[\"ProbSuccess\"] = \"70%\";
        dr7[\"Key Account\"] = \"E-Paccar\";
        dr7[\"Sales SubRegion\"] = \"North America\";
        dr7[\"Growth\"] = \"10%\";
        dr7[\"SalesOE\"] = \"150\";
        dr7[\"SalesAM\"] = \"18\";

        dt2.Rows.Add(dr7);

        GridView gv13 = (GridView)e.Row.FindControl(\"GridView3\");
        gv13.DataSource = ds2.Tables[0];
        gv13.DataBind();
    }
}

The hyperlink hlPlus is a hyperlink field inside GridView\'s Template Field(Item Template).


回答1:


Try this:

foreach(GridViewRow row in GridView1.Rows) {
    if(row.RowType == DataControlRowType.DataRow) {
        HyperLink myHyperLink = row.FindControl("myHyperLinkID") as HyperLink;
    }
}

If you are handling RowDataBound event, it's like this:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink myHyperLink = e.Row.FindControl("myHyperLinkID") as HyperLink;
    }
}



回答2:


You can use this code to find HyperLink in GridView. Use of e.Row.Cells[0].Controls[0] to find First position of control in 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";
            }               
        }       

    }
}



回答3:


I have done it accessing the controls inside the cell control. Find in all control collections.

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

 Label lbCod = (Label)cc[1];



回答4:


protected void gvTurnos_RowDataBound(object sender, GridViewRowEventArgs e)
{
    try
    {

        if (e.Row.RowType == DataControlRowType.EmptyDataRow)
        {
            LinkButton btn = (LinkButton)e.Row.FindControl("btnAgregarVacio");
            if (btn != null)
            {
                btn.Visible = rbFiltroEstatusCampus.SelectedValue == "1" ? true : false;
            }
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}



回答5:


Try with below code.

Like GridView in LinkButton, Label, HtmlAnchor and HtmlInputControl.

<asp:GridView ID="mainGrid" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered table-hover tablesorter"
    OnRowDataBound="mainGrid_RowDataBound"  EmptyDataText="No Data Found.">
    <Columns>
        <asp:TemplateField HeaderText="HeaderName" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <asp:Label runat="server" ID="lblName" Text=' <%# Eval("LabelName") %>'></asp:Label>
                <asp:LinkButton ID="btnLink" runat="server">ButtonName</asp:LinkButton>
                <a href="javascript:void(0);" id="btnAnchor" runat="server">ButtonName</a>
                <input type="hidden" runat="server" id="hdnBtnInput" value='<%#Eval("ID") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Handling RowDataBound event,

protected void mainGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Label lblName = (Label)e.Row.FindControl("lblName");
        LinkButton btnLink = (LinkButton)e.Row.FindControl("btnLink");
        HtmlAnchor btnAnchor = (HtmlAnchor)e.Row.FindControl("btnAnchor");
        HtmlInputControl hdnBtnInput = (HtmlInputControl)e.Row.FindControl("hdnBtnInput");
    }
}



回答6:


If your GridView is databond, make an index column in the resultset you retrive like this:

select row_number() over(order by YourIdentityColumn asc)-1 as RowIndex, * from YourTable where [Expresion]

In the command control you want to use make the value of CommandArgument property equal to the row index of the DataSet table RowIndex like this:

<asp:LinkButton ID="lbnMsgSubj" runat="server" Text='<%# Eval("MsgSubj") %>' Font-Underline="false" CommandArgument='<%#Eval("RowIndex") %>' />

Use the OnRowCommand event to fire on clicking the link button like this:

<asp:GridView ID="gvwStuMsgBoard" runat="server" AutoGenerateColumns="false" GridLines="Horizontal" BorderColor="Transparent" Width="100%" OnRowCommand="gvwStuMsgBoard_RowCommand">

Finally the code behind you can then do whatever you like when the event is triggered like this:

protected void gvwStuMsgBoard_RowCommand(object sender, GridViewCommandEventArgs e)
{
    Panel pnlMsgBody = (Panel)gvwStuMsgBoard.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("pnlMsgBody");
    if(pnlMsgBody.Visible == false)
    {
        pnlMsgBody.Visible = true;
    }
    else
    {
        pnlMsgBody.Visible = false;
    }
}



回答7:


string textboxID;
string da;
textboxID = "ctl00$MainContent$grd$ctl" + (grd.Columns.Count + j).ToString() + "$txtDyna" + (k).ToString();
textboxID= ctl00$MainContent$grd$ctl12$ctl00;
da = Request.Form(textboxID);


来源:https://stackoverflow.com/questions/6873973/how-to-find-control-in-templatefield-of-gridview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!