Ben
Ben

Reputation: 53

Accessing a Label control within a GridViewRow with Javascript

I have a Label control within a GridViewRow cell, that I need to access from the client side using Javascript. I can access the GridView row fine, but I can't for the life of me work out how to access the Label within it.

Layout:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="link_lbl" runat="server" Visible="false" Text='<%# BIND("link") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

Javascript:

var gridview = document.getElementById("<%= list_gv.ClientID %>");
for (i = 1; i < gridview.rows.length; i++) {
    var label = gridview.rows[i].cells[0].?????
}

I've tried various things where the ????? is, but can't get to the Label control to read from it!

Any ideas please?

Upvotes: 4

Views: 8980

Answers (2)

Shafeeq Koorimannil
Shafeeq Koorimannil

Reputation: 724

Try this code

var gridview = document.getElementById("<%= list_gv.ClientID %>");
for (i = 1; i < gridview.rows.length; i++) {
    var labels = gridview.rows[i].cells[0].getElementsByTagName("span");
     alert(labels[0].innerHTML);
}

This will give you the first label text in cell[0]. You can also directly get by using label id.

var gridview = document.getElementById("<%= list_gv.ClientID %>");
for (i = 1; i < gridview.rows.length; i++) {
    var RowNumber=(i+1).toString();
    if (i<10)
    RowNumber="0"+(i+1).toString();
    var label =  document.getElementById(gridview.id.toString()+"_ctl" + RowNumber + "_link_lbl");
    alert(label.innerHTML);
}

Upvotes: 3

Imran Rizvi
Imran Rizvi

Reputation: 7438

Try this

var label =gridview.rows[i].cells[0].getElementsByTagName("span")

Upvotes: 1

Related Questions