繁体   English   中英

ASP.NET GridView

[英]Asp.net gridview

我在gridview中有一个文本框。 我需要在javascript中获取文本框的ID。 当我这样使用'<%= txtNewQty.ClientID%>'; 它给出了编译错误。

Gridviews内部的控件不是Page的成员,它们仅存在于.aspx中。 它们将在每一行中重复,因此它们是动态创建的。

要在Gridview的一行中获取控件的引用,可以使用FindControl

foreach(GridViewRow row in gridview.Rows)
{
    Textbox tb = row.FindControl("txtNewQtv") as Textbox;
    string id = tb.ClientID;
    //Generate your javascript here so it can be callable on the client
}

txtNewQty在页面级别不存在,因此您将无法以这种方式引用它。 您将必须执行一些操作,例如在服务器端生成js或从gridview元素向下进行操作。 发布一些代码以及您想要发生的事情的描述。

这是一种不好的方法,因为它被硬编码到列索引中。 它可以工作,但是必须有使用jQuery的更好方法。 不幸的是,我不是那个专家。

<script type="text/javascript">
    function Update(btn) {
        alert(btn.parentNode.parentNode.children[0].children[0].id);
    }
</script>
<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txtNewQtv" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <input type="button" onclick="Update(this)" value="Update" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM