首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET GridView中找到控件的客户端ID?

如何在ASP.NET GridView中找到控件的客户端ID?
EN

Stack Overflow用户
提问于 2009-07-15 00:11:15
回答 6查看 59.2K关注 0票数 19

我有一个asp:GridView,它在TemplateField中包含一个asp:TextBox。我想获取它的ID,以便在javascript中使用。如下所示:

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

但是当我编译时,我得到一个错误:

名称'textDateSent‘在当前上下文中不存在

有人知道怎么获取这个TextBox的客户端ID吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-15 02:13:01

试试这个:

代码语言:javascript
复制
<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>
票数 32
EN

Stack Overflow用户

发布于 2009-07-15 03:27:50

也许您不想在需要ClientID的地方执行此操作。看看这篇文章的here,其中一行中的控件以通用的方式被引用。

票数 2
EN

Stack Overflow用户

发布于 2009-07-15 00:12:53

<%# textDateSent.ClientID %>更改为<%= textDateSent.ClientID %>

啊,您可能需要使用网格视图的OnDataBinding事件。然后在你的javascript中放一个文字控件。然后,您可以获取文本框的clientID并将其提供给您的文本控件。

代码语言:javascript
复制
protected void GridViewName_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //Create an instance of the datarow
            DataRowView rowData = (DataRowView)e.Row.DataItem;

            //locate your text box
            //locate your literal control
            //insert the clientID of the textbox into the literal control
        }
    }

在这里查找在此上下文中工作的great detailed tutorial

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1128746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档