【问题标题】:How to apply jquery datepicker to textbox in gridview in masterpage如何将jquery datepicker应用于masterpage中gridview中的文本框
【发布时间】:2013-10-17 13:24:53
【问题描述】:

我在更新面板中有网格视图,在网格视图中有多行带有文本框,我以这样的方式排列代码,当我点击链接时按钮,网格视图的行会增加,但问题是当我想将 jquery datepicker 应用于 txtDate 文本框时,它适用于第一行文本框,但是当我单击链接按钮时,网格视图中的行增加,日期选择器功能不起作用.... 这是我的代码..

    <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>

请帮帮我..

【问题讨论】:

    标签: jquery asp.net gridview


    【解决方案1】:

    这里是解决方案..

       <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>
    

    【讨论】:

      【解决方案2】:

      我喜欢这个问题。它的更新面板的问题。 只需添加以下代码。

      </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>
      

      我希望这能解决您的问题。否则请回复。

      【讨论】:

      • 首先,您需要在 document.ready 和 updatepanel 脚本标签中调用 $('#txtDate').datepicker 。如果这没有解决,然后尝试,而不是使用 $("[id$=txtDate]") 调用文本框 $('#txtDate') 或将类分配给文本框,如 class="classtext" 并通过在函数 getme() 中使用 $(.classtext) 的文本框。它肯定会奏效。我制作了一个演示样本并进行了测试。
      • 嗨 raju,我已经尝试了三个小时以不同的方式完成该任务仍然无法正常工作.. 你能把你成功测试的代码发给我吗.. 请帮帮我,bcz 我正在努力从两个天..
      • 感谢发送,当 id 被当作类时它正在工作。终于明白了。
      【解决方案3】:

      使用类选择器而不是 ID 选择器,因为 ID 必须用于 UNIQUE 元素。

      它看起来像:

          <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>
      

      注意&lt;asp:TextBox ID="txtDate" class='datepick' runat="server" AutoPostBack="true"&gt;

      编辑

      因为您必须实例化与文本字段 other topic from this issue 一样多的日期选择器

      $(document).ready(function () {
          $(".datepick").each(function() {
             $(this).datepicker();
          });
      });
      

      【讨论】:

      • 它可以工作,但是为什么当我点击第二行的时间选择器时,时间选择器小部件会跳出面板?
      • 目前,我不知道。你能在jsFiddle 中发布一些代码让我看看吗?
      猜你喜欢
      • 1970-01-01
      • 2012-07-18
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多