Search code examples
asp.netjavascriptgridviewdatabound

How do I find the Client ID of control within an ASP.NET GridView?


I have a asp:GridView which contains a asp:TextBox within a TemplateField. I would like to obtain it's ID for use in javascript. Something like this:

<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="textDateSent" runat="server" />
        <input type="button" value='Today' 
            onclick="setToday('<%# textDateSent.ClientID %>');" />
    </ItemTemplate>
</asp:TemplateField>

But when I compile, I get an error:

The name 'textDateSent' does not exist in the current context

Anybody know how to get the client ID of this TextBox?


Solution

  • Try this:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:TextBox ID="textDateSent" runat="server">
            </asp:TextBox>                      
           <input type="button" value='Today' onclick="setToday('<%# ((GridViewRow)Container).FindControl("textDateSent").ClientID %>');" /> 
        </ItemTemplate>
    </asp:TemplateField>