如何在嵌套网格视图ASP.net中使用日期时间选择器使用JQuery c#

时间:2016-03-18 07:38:08

标签: c# jquery asp.net gridview

我在ASP.net文本框中实现了日期时间选择器,但是当我在gridview或嵌套gridview中使用它时,它会失败..

我想要的是...... 通过这个JQuery函数

$(function () {
    $("#<%= txtDate.ClientID %>").datepicker();
});

在给定样本点击嵌套网格视图时显示日期时间选择器。

<asp:GridView ID="GV_Proc" runat="server" AutoGenerateColumns="false" CssClass="Grid"
DataKeyNames="Procedure_Code" OnRowDataBound="GV_ProcOnRowDataBound" 
    onselectedindexchanged="gvProc_SelectedIndexChanged" Width="512px">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>          
                <img alt = "" style="cursor: pointer" src="../images/plus.png"  />             
                <asp:Panel ID="pnldiagtype" runat="server" Style="display: none">
                    <asp:GridView ID="gvProctype" runat="server" AutoGenerateColumns="false" CssClass = "ChildGrid">
                        <Columns>
                            <asp:TemplateField HeaderText="Select" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="">
                                <ItemTemplate>
                                    <asp:CheckBox ID="chk_Select" runat="server"/>
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemStyle Width="8%" />
                            </asp:TemplateField>
                            <asp:BoundField ItemStyle-Width="20%" DataField="Procedure_Type_ID" HeaderText="Procedure Type Id" />
                            <asp:BoundField ItemStyle-Width="20%" DataField="Procedure_Code" HeaderText="Procedure Code" />
                            <asp:BoundField ItemStyle-Width="100%" DataField="Procedure_Type_Desc" HeaderText="Description"  />

                            <asp:TemplateField HeaderText="Remarks" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="">
                                <ItemTemplate>
                                    <asp:TextBox ID="txt_Remarks" CssClass=".text" runat="server"></asp:TextBox>
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemStyle Width="8%" />
                            </asp:TemplateField>                           

                            <asp:TemplateField HeaderText="Date" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="">
                                <ItemTemplate>                                
                                    <asp:TextBox ID="txtDate" runat="server" />                                   
                                    <img src="../calender.png" />                                    
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemStyle Width="8%" />
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </asp:Panel>
            </ItemTemplate>
        <ItemStyle Width="8%" />
    </asp:TemplateField>
    <asp:BoundField ItemStyle-Width="150px" DataField="Procedure_Code" HeaderText="Procedure ID"/>
    <asp:BoundField ItemStyle-Width="150px" DataField="Procedure_Description" HeaderText="Procedure Name" />
</Columns>  

当我尝试构建它时,它会显示

  

当前上下文中不存在名称“txtDate”

任何帮助都是合适的

当我使用没有网格视图的相同功能时,运行成功..

我正在使用以下脚本和样式表

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/themes/base/jquery-ui.css" type="text/css" media="all" />
<link rel="stylesheet" href="http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css" type="text/css" media="all" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.0.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

更新:

<script type="text/javascript">

$(document).ready(function () {
    $('.datepicker-text').datepicker();
});

并将textBox属性更新为

<asp:TextBox ID="txtDate" runat="server" CssClass="datepicker-text"/> 

3 个答案:

答案 0 :(得分:0)

当DOM准备好时,应该分配

datepicker,以便存在所述对象。

在您的日期文本框中放置css课程,用它来选择datepicker的文本框,因为可以有多行。

<asp:TextBox ID="txtDate" runat="server" CssClass="datepicker-text"/>

然后在datepicker上指定document.ready作为

$('.datepicker-text').datepicker();

答案 1 :(得分:0)

为什么使用多个jquery。您必须只使用一个jquery(生产中的最小值):

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.0.js"></script>

然后你谈论一个构建错误。你可以发布服务器代码吗?您无法使用txtDate获取txtDate,但必须从gridviewrow开始使用FindControl(“txtDate”)

答案 2 :(得分:-1)

这个怎么样?获取文本框并使用textmode属性并指定类

<asp:TextBox ID="txtDate" runat="server" TextMode="datepicker-text"/>

因为有多个script tags,我认为它与其他人相互冲突,所以称之为

$(function () {
            var jQuery_1_11_4 = $.noConflict(true);
            jQuery_1_11_4(".datepicker-text").datepicker();
        });