如何使用 JQuery c# 在嵌套网格视图 ASP.net 中使用日期时间选择器
Posted
技术标签:
【中文标题】如何使用 JQuery c# 在嵌套网格视图 ASP.net 中使用日期时间选择器【英文标题】:how to use datetime picker in nested grid view ASP.net using JQuery c# 【发布时间】:2016-07-04 20:55:27 【问题描述】:我已经在 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"/>
【问题讨论】:
【参考方案1】:datepicker
应该在 DOM 准备好时分配,以便所述对象存在。
在您的日期文本框上放置一个css
类,用它来选择datepicker
的文本框,因为可以有多行。
<asp:TextBox ID="txtDate" runat="server" CssClass="datepicker-text"/>
然后将datepicker
分配给document.ready
为
$('.datepicker-text').datepicker();
【讨论】:
您能否发布您所做的更改以及您遇到的确切错误。 好的,您在浏览器控制台中查看,有没有错误?你能试着调试一下apply`datepicker, does selector
$('.datepicker-text')`有任何长度的语句吗?【参考方案2】:
为什么要使用多个 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")
【讨论】:
当我不使用第 4 个脚本时,这不会扩展 gridview 行。这就是使用它的原因。 错了!您必须只使用一个 jquery。如果您需要多个版本,有一个脚本来支持它们 那么我们如何支持他们呢?有什么想法吗? 你不应该使用...***.com/questions/1566595/…【参考方案3】:这个怎么样。取一个文本框并具有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();
);
【讨论】:
@user6002727 你试过我的吗?它对你有用吗? 是的,我已经尝试过了,但是 TextMode 属性中出现了构建错误。 使用 TextMode 属性指定 TextBox 控件是显示为单行、多行还是密码文本框。参考:msdn.microsoft.com/en-us/library/…以上是关于如何使用 JQuery c# 在嵌套网格视图 ASP.net 中使用日期时间选择器的主要内容,如果未能解决你的问题,请参考以下文章
如何在嵌套的 ASP.NET 列表视图中使用 jQuery 检测当前元素
如何在 C# 中更新或刷新与 Ms-access 连接的数据网格视图