Sanjay Chintha
Sanjay Chintha

Reputation: 326

How to apply jquery datepicker to textbox in gridview in masterpage

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>
            &nbsp;&nbsp;
               <asp:LinkButton ID="lnkLess" runat="server" Text="Less(<<)" OnClick="lnkLess_Click"></asp:LinkButton>
             </ContentTemplate></asp:UpdatePanel>

pls help me..

Upvotes: 0

Views: 13708

Answers (3)

Sanjay Chintha
Sanjay Chintha

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

JoDev
JoDev

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>
            &nbsp;&nbsp;
               <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

Raju S Nair
Raju S Nair

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

Related Questions