Reputation: 326
I have grid view in update panel, in grid view there are multiple rows with textboxes, I have arrange the code in such a way that when i click on link button , the rows of the grid view will increase, but problem is that when i want to apply jquery datepicker to txtDate textbox, its working for first row text box , but when i click on link button as rows increases in grid view , the date picker functionality is not working.... Here my code is..
<script type="text/javascript">
$(document).ready(function () {
$("[id$=txtDate]").datepicker();
});
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-2.0.3.js" />
<asp:ScriptReference Path="~/Scripts/jquery-ui-1.10.3.js" />
</Scripts>
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<asp:gridview ID="Gridview1" runat="server" ShowFooter="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3">
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name">
<ItemTemplate>
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date">
<ItemTemplate>
<asp:TextBox ID="txtDate" runat="server" AutoPostBack="true">
</asp:TextBox>
</ItemTemplate></asp:TemplateField>
</Columns>
</asp:gridview>
<asp:LinkButton ID="lnkMore" runat="server" Text="More(>>)" OnClick="lnkMore_Click"></asp:LinkButton>
<asp:LinkButton ID="lnkLess" runat="server" Text="Less(<<)" OnClick="lnkLess_Click"></asp:LinkButton>
</ContentTemplate></asp:UpdatePanel>
pls help me..
Upvotes: 0
Views: 13708
Reputation: 326
Here it is Solution..
<script type="text/javascript">
$(function () {
$('.date').datepicker();
});
</script>
<asp:ScriptManager ID="scm1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(getme);
function getme() {
$('.date').datepicker();
}
</script>
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:gridview ID="Gridview1" runat="server" ShowFooter="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" >
<Columns>
<asp:TemplateField HeaderText="Date">
<ItemTemplate>
<asp:TextBox ID="txtDate" runat="server" class="date" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</ContentTemplate></asp:UpdatePanel>
Upvotes: 4
Reputation: 6873
Use a class selector instead of ID selector, because ID must be for a UNIQUE element.
It will looks like :
<script type="text/javascript">
$(document).ready(function () {
$(".datepick").datepicker();
});
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-2.0.3.js" />
<asp:ScriptReference Path="~/Scripts/jquery-ui-1.10.3.js" />
</Scripts>
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<asp:gridview ID="Gridview1" runat="server" ShowFooter="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3">
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name">
<ItemTemplate>
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date">
<ItemTemplate>
<asp:TextBox ID="txtDate" class='datepick' runat="server" AutoPostBack="true">
</asp:TextBox>
</ItemTemplate></asp:TemplateField>
</Columns>
</asp:gridview>
<asp:LinkButton ID="lnkMore" runat="server" Text="More(>>)" OnClick="lnkMore_Click"></asp:LinkButton>
<asp:LinkButton ID="lnkLess" runat="server" Text="Less(<<)" OnClick="lnkLess_Click"></asp:LinkButton>
</ContentTemplate></asp:UpdatePanel>
Note the <asp:TextBox ID="txtDate" class='datepick' runat="server" AutoPostBack="true">
EDIT
Because you have to instanciate as many datepicker as text field other topic from this issue
$(document).ready(function () {
$(".datepick").each(function() {
$(this).datepicker();
});
});
Upvotes: 0
Reputation: 333
I like this question. its the problem with update panel. Just add the following codes .
</asp:ScriptManager>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(getme);
function getme() {
$("[id$=txtDate]").datepicker();
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
I hope this would solve your problem. else pls reply.
Upvotes: 1