c# - 如何使用 JQuery c# 在嵌套 GridView ASP.net 中使用日期时间选择器

标签 c# jquery asp.net gridview

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

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

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

在给定示例中单击嵌套 GridView 时显示日期时间选择器..

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

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

The name 'txtDate' does not exist in the current context

任何帮助都是可取的

当我在没有 GridView 的情况下使用相同的功能时,运行成功..

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

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

最佳答案

datepicker 应该在 DOM 准备就绪时分配,以便该对象存在。

在您的日期文本框上放置一个 css 类,使用它来选择 datepicker 的文本框,因为可以有多个行。

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

然后将 document.ready 上的 datepicker 指定为

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

关于c# - 如何使用 JQuery c# 在嵌套 GridView ASP.net 中使用日期时间选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36078690/

相关文章:

c# - WeakReference 做一个好的缓存吗?

jquery - 如何将点击事件绑定(bind)到 jQuery 中的克隆按钮

asp.net - 跨多个回发存储对象的方法

c# - 仅当值在运行时使用 Unity 为非空时,如何才能注入(inject)属性?

c# - Principal Role App 引用的属性必须与 EntityType 的键完全相同

javascript - JQuery/PHP 日历协助

javascript - 排序 json 列表?

c# - Active Directory LDAP - 锁定用户帐户

html - 具有相同 CSS 属性的表格未正确排列

c# - 从 C# 中的句子中修剪太长的单词?