I have a code that validates a text box inside of a GridView
when a button is clicked.
This is a code:
function ValidateEmail(btn_id)
{
alert(btn_id.id);
$('#<%=lblTest.ClientID%>').text(btn_id.id);
var btnId = btn_id.id;
alert($(btnId).closest("tr").id);
return false;
}
I call this method inside the Grid
the following way:
<asp:Button ID="btnEmailUpdate" Text = "Update" CommandName="UpdateEmail" runat="server" onClientClick="return ValidateEmail(this)"/>
Everything looks fine until I'm trying to get the closest tr
element:
alert($().closest("tr").id);
My alert
box shows "undefined" message.
What am I doing wrong here?
Here is my page.aspx with gridview:
<%@ Page Language="C#" MasterPageFile="~/Portal.master" AutoEventWireup="true" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" CodeFile="ISOSearch.aspx.cs" Inherits="ISOProcessing_ISOSearch" Title="ISO Search" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<script src="../shared/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function ValidateEmail(btnObj)
{
alert(btnObj);
alert(btnObj.id);
alert($(btnObj).closest("tr").attr("id"));
return false;
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentLeft" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentMain" Runat="Server">
<asp:UpdatePanel ID="ISOSearchUpdatePanel" runat="server">
<ContentTemplate>
<div id="divIsoSelect" style="width:700px; height:60px; background-color:white">
<fieldset>
<legend style="font-size: larger; font-weight: bold">Search ISO by</legend>
<table>
<tr>
<td><asp:DropDownList ID="ddlISOSearch" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlISOSearch_SelectedIndexChanged">
<asp:ListItem Value="">Select...</asp:ListItem>
<asp:ListItem Value="ISO Number" >ISO Number</asp:ListItem>
<asp:ListItem Value="Name">Name</asp:ListItem>
<asp:ListItem Value="Region" >Region</asp:ListItem>
<asp:ListItem Value="Division">Division</asp:ListItem>
</asp:DropDownList></td>
<td > </td>
<td>
<asp:Panel ID="pnlSearchEntry" runat="server" Visible="false" style="width:500px; border:gainsboro; border-width: thick;">
<table>
<tr>
<td valign="middle" style="width:120px"><asp:Label ID="lblEntry" runat="server" Text=""></asp:Label></td>
<td valign="top"><asp:TextBox ID="txtSearchValue" runat="server"></asp:TextBox></td>
<td valign="top"> <asp:Button ID="btnFind" runat="server" Text="Select" OnClick="btnFind_Click"/></td>
</tr>
</table>
</asp:Panel>
</td>
</tr>
</table>
</fieldset>
</div>
<div>
<p>
<asp:Label ID="lblTest" runat="server" style="position:absolute; left: 221px; top: 100px;"></asp:Label></p>
<asp:Label ID="lblMsg" runat="server" style="position:absolute; left: 221px; top: 105px;"></asp:Label></p>
</div>
<asp:GridView ID="grvIsoSearchResults" runat="server"
AutoGenerateColumns="False" PageSize="15"
AllowPaging = "true" Visible="true" BorderColor="Red" GridLines="Both"
OnRowCommand="grvIsoSearchResults_RowCommand"
DataKeyNames="isonum"
OnPageIndexChanging="grvIsoSearchResults_PageIndexChanging"
style="position:absolute; top: 120px;">
<PagerSettings FirstPageText="First" LastPageText="Last" NextPageText="Next" PageButtonCount="100" />
<Columns>
<asp:TemplateField HeaderText="ISONUM" SortExpression="isonum">
<ItemTemplate>
<asp:Label ID="txtgvIsoNum" Text = '<%# Eval("ISONUM")%>' runat="server" Width="70px" style="text-align:center" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="OFFICE NAME" SortExpression="isoofficename">
<ItemTemplate>
<asp:Label ID="txtgvIsoOfficeName" Text = '<%# Eval("ISOOFFICENAME")%>' runat="server" Width="200px" style="text-align:center" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="REGION" SortExpression="region">
<ItemTemplate>
<asp:Label ID="txtgvRegion" Text = '<%# Eval("REGION")%>' runat="server" Width="50px" style="text-align:center" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DIVISION" SortExpression="client_id">
<ItemTemplate>
<asp:Label ID="txtgvDivision" Text = '<%# Eval("CLIENT_ID")%>' runat="server" Width="50px" style="text-align:center" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="EMAIL ADDRESS">
<ItemTemplate>
<asp:TextBox ID="txtgvEmailAddress" Text = '<%# Eval("EMAIL")%>' runat="server" Width="200px" />
<asp:Button ID="btnEmailUpdate" Text = "Update" runat="server" CommandName="UpdateEmail" onClientClick="return ValidateEmail(this)" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<pagerstyle backcolor="#005482" ForeColor="White" height="30px" verticalalign="Bottom" horizontalalign="Center"/>
</asp:GridView>
<asp:ValidationSummary ID="validationSummary" runat="server" ShowMessageBox="false" ShowSummary="true"/>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
Please Wait.....
</ProgressTemplate>
</asp:UpdateProgress>
</asp:Content>