Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2049
  • Last Modified:

Get Gridview Cell Value using Javascript

I have a Gridview, where first column is a Link Button (text:view) and on click of the row, I need to get the cell value of next column.If I use below code, I get the row value but it fires on every cell is clicked .
 $(document).ready(function () {
            $("#<%=gvResults.ClientID%> tr:has(td)").click(function (e) {
                var selectedRow = $(this);
                var FirstRow = (selectedRow.children(0)[2].innerText);

Open in new window


I need a simple Javascript function, so I get the cell value(s), on when the very first column(link button) is being clicked.
0
ASPDEV
Asked:
ASPDEV
  • 3
  • 3
1 Solution
 
Albert Van HalenAnalyst developerCommented:
According to your selector it will fire on every row having cells.
If you want the event being fired only when the link is being click (I'm not sure what the element name is for a Link Button; i'm only guessing that it's an A-tag), your selector would be this :
 $("#<%=gvResults.ClientID%> a")

Open in new window

In order to get the next cell of the cell in which your link is use the following code:
var theCell = $(this).parents("td:first").next("td");

Open in new window

The text of the cell can be retreived by using the text method :
var theText = theCell.text();

Open in new window

0
 
ASPDEVAuthor Commented:
AlbervanHalen,

Tell me whether I can do this:

 <Columns>
                                            <asp:TemplateField>
                                                <HeaderTemplate>
                                                    View</HeaderTemplate>
                                                <HeaderStyle HorizontalAlign="Center" Width="75px" />
                                                <ItemTemplate>
                                                    <asp:LinkButton ID="lnkView" runat="server" Text="View" Font-Underline="false"
                                                        OnClientClick="return view();" ForeColor="Blue" />
                                                </ItemTemplate>
                                            </asp:TemplateField>
 <asp:TemplateField Visible="false">
                                                <HeaderTemplate>
                                                    ID</HeaderTemplate>
                                                <HeaderStyle HorizontalAlign="Center" Width="1px" />
                                                <ItemTemplate>
                                                    <asp:Literal runat="server" ID="ltrlID" Text='<%# Eval("ID") %>' />
                                                </ItemTemplate>
                                            </asp:TemplateField>

Open in new window


Can I pass the ltrlID client id value for the selected row  OnClientClick="return view();" like this view(document.getElementById("<%=ltrlID.ClientID %>"). Is it possible??
0
 
Albert Van HalenAnalyst developerCommented:
Well, an asp:literal is just plain text client side, so it's not an element. In order to use an element you have to use a span or div.
But why don't you use the value directly in the itemtemplate where the linkbutton is...
<asp:TemplateField>
    <HeaderTemplate>View</HeaderTemplate>
    <HeaderStyle HorizontalAlign="Center" Width="75px" />
    <ItemTemplate>
        <asp:LinkButton ID="lnkView" runat="server" Text="View" Font-Underline="false" OnClientClick="return view('<%# Eval("ID") %>');" ForeColor="Blue" />
     </ItemTemplate>
</asp:TemplateField>

Open in new window

0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
ASPDEVAuthor Commented:
I think below code will work:
OnClientClick="return view('<%# Eval("ID") %>');"

Open in new window

But I get error , server tag not well formed.How can pass the EVAL to javascript function.
0
 
Albert Van HalenAnalyst developerCommented:
Tags with mixed single and double quotes...
You can use an html anchor as an alternative:
<a id='<%# Eval("ID") %>' onclick="return view(this.id);">View</a>

Open in new window

0
 
ASPDEVAuthor Commented:
Thanks, it worked.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now