在datagrid中检查日期 [英] Check For date in datagrid

查看:65
本文介绍了在datagrid中检查日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好

我正在使用带有列开始日期,结束日期和价格的gridview

我需要检查用户是否输入了365天的价格

例如:

开始日期结束日期价格
--------- ------- -----
2011年1月1日2011年2月28日
2011年1/3/2011年2月5日100
3/5/2011 1/7/2011 250
2011年10月7日2011年9月15日200天有间隔(从2011年7月7日到2011年7月7日没有价格)
17/9/2011 1/11/2011 100 ----有1天的间隔(16/9/2011天没有价格)
17/11/2011 31/12/2011 100 -----有16天的间隔(从2/11/2011到16/11/2011没有价格)

如何查找网格中一年未输入价格的缺少日期?

解决方案

@Maulik
我有一个gridview,如下所示

< asp:GridView ID ="gvShortStayRate" runat ="server" AutoGenerateColumns ="False"
BorderColor ="Black" BorderWidth ="1px" DataKeyNames ="Id"
DataSourceID ="ShortTermRateDS" OnRowCommand ="gvShortStayRate_RowCommand"
ShowFooter ="True">
<专栏>

< asp:TemplateField HeaderText =第一晚">
< EditItemTemplate>
< asp:TextBox ID ="Editstart_date" runat =服务器" Height ="15px" ReadOnly ="True"
Text =''<%#Bind("start_date")%>''Width ="65px"/>
< asp:CalendarExtender ID ="calstart_date" runat ="server" Enabled ="True" Format ="dd/MM/yyyy"
PopupButtonID ="img_calendarstart" TargetControlID ="Editstart_date"></asp:CalendarExtender>
< asp:图片ID ="img_calendarstart" runat =服务器" ImageUrl ="Images/Calendar_scheduleHS.png"/>
< asp:RequiredFieldValidator ID ="RFVEditStartDate" runat ="server" ControlToValidate ="Editstart_date"
ErrorMessage ="*" ValidationGroup ="Edit"></asp:RequiredFieldValidator>
</EditItemTemplate>
< FooterTemplate>
< asp:TextBox ID ="Insertstart_date" runat ="server" Height ="15px" ReadOnly ="True"
Text =''<%#Bind("start_date")%>''Width ="65px"/>
< asp:CalendarExtender ID ="calInsertstart_date" runat ="server" Enabled ="True"
格式="dd/MM/yyyy" PopupButtonID ="imgcalendarInsertstart"
TargetControlID ="Insertstart_date"></asp:CalendarExtender>
< asp:图片ID ="imgcalendarInsertstart" runat =服务器"
ImageUrl ="Images/Calendar_scheduleHS.png"/>
< asp:RequiredFieldValidator ID ="RFVInsertStartDate" runat ="server"
ControlToValidate ="Insertstart_date" ErrorMessage ="*" ValidationGroup ="Insert"></asp:RequiredFieldValidator>
</FooterTemplate>
< ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
< asp:TemplateField HeaderText =昨晚">
< EditItemTemplate>
< asp:TextBox ID ="Editend_date" runat ="server" Height ="15px" ReadOnly ="True"
Text =''<%#Bind("end_date")%>''Width ="65px"/>
< asp:CalendarExtender ID ="calEditend_date" runat ="server" Enabled ="True" Format ="dd/MM/yyyy"
PopupButtonID ="imgcalendarEditend" TargetControlID ="Editend_date"></asp:CalendarExtender>
< asp:图片ID ="imgcalendarEditend" runat =服务器" ImageUrl ="Images/Calendar_scheduleHS.png"/>
< asp:RequiredFieldValidator ID ="RFVEditEndDate" runat ="server" ControlToValidate ="Editend_date"
ErrorMessage ="*" ValidationGroup ="Edit"></asp:RequiredFieldValidator>
< asp:CompareValidator ID ="CVEnddate" runat ="server" ControlToCompare ="EditStart_date"
ControlToValidate ="Editend_date" ErrorMessage =结束日期应大于开始日期"
Operator ="GreaterThan" ValidationGroup ="Edit"></asp:CompareValidator>
</EditItemTemplate>
< FooterTemplate>
< asp:TextBox ID ="Insertend_date" runat =服务器" Height ="15px" ReadOnly ="True"
Text =''<%#Bind("end_date")%>''Width ="65px"/>
< asp:CalendarExtender ID ="calInsertend_date" runat ="server" Enabled ="True"
格式="dd/MM/yyyy" PopupButtonID ="imgcalendarInserttend"
TargetControlID ="Insertend_date"></asp:CalendarExtender>
< asp:图片ID ="imgcalendarInserttend" runat =服务器"
ImageUrl ="Images/Calendar_scheduleHS.png"/>
< asp:RequiredFieldValidator ID ="RFVInsertEndDate" runat ="server"
ControlToValidate ="Insertend_date" ErrorMessage ="*" ValidationGroup ="Insert"></asp:RequiredFieldValidator>
< asp:CompareValidator ID ="CVInsertEnddate" runat ="server"
ControlToCompare ="Insertstart_date" ControlToValidate ="Insertend_date"
ErrorMessage =结束日期应大于开始日期"
Operator ="GreaterThan" ValidationGroup ="Insert"></asp:CompareValidator>
</FooterTemplate>
< ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
< asp:TemplateField HeaderText =每周汇率">
< EditItemTemplate>
< asp:TextBox ID ="Editweekly_rate" runat =服务器" Height ="15px"
Text =''<%#Bind("weekly_rate")%>''Width ="50px"/>
< asp:RequiredFieldValidator ID ="RFVWeeklyRate" runat =服务器" ControlToValidate ="Editweekly_rate"
ErrorMessage ="*" ValidationGroup ="Edit"></asp:RequiredFieldValidator>
< asp:CompareValidator ID ="CVWeeklyRate" runat ="server" ControlToValidate ="Editweekly_rate"
ErrorMessage =输入有效费率" Operator ="DataTypeCheck" Type ="Double"
ValidationGroup ="Edit"></asp:CompareValidator>
</EditItemTemplate>
< FooterTemplate>
< asp:TextBox ID ="Insertweekly_rate" runat =服务器" Height ="15px"
Text =''<%#Bind("weekly_rate")%>''Width ="50px"/>
< asp:RequiredFieldValidator ID ="RFVInsertWeeklyRate" runat ="server"
ControlToValidate ="Insertweekly_rate" ErrorMessage ="*" ValidationGroup ="Insert"></asp:RequiredFieldValidator>
< asp:CompareValidator ID ="CVInsertWeeklyRate" runat ="server"
ControlToValidate ="Insertweekly_rate" ErrorMessage =输入有效费率"
Operator ="DataTypeCheck" Type ="Double" ValidationGroup ="Insert"></asp:CompareValidator>
</FooterTemplate>
< ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
< asp:TemplateField HeaderText ="Commands">
< EditItemTemplate>
< asp:按钮ID =更新" runat =服务器" CommandArgument =''<%#Eval("id")%>''
CommandName ="Update"文本="Update" ValidationGroup ="Edit"/>
< asp:按钮ID =取消" runat =服务器" CommandName =取消" Text =取消"/>
</EditItemTemplate>
< FooterTemplate>
< asp:Button ID ="Insert" runat ="server" CommandName ="InsertNew" Text ="Insert"
ValidationGroup =插入"/>
</FooterTemplate>
< ItemTemplate>
< asp:Button ID ="Edit" runat ="server" CommandName ="Edit" Text ="Edit"/>
< asp:按钮ID =删除" runat =服务器" CommandName =删除" Text =删除"/>
</ItemTemplate>
</asp:TemplateField>
</列>
< EmptyDataTemplate>

第一晚:< asp:TextBox ID ="NoDatastart_date" runat ="server" Height ="15px" ReadOnly ="True"
Text =''<%#Bind("start_date")%>''Width ="65px"/>
< asp:CalendarExtender ID ="calNoDatastart_date" runat ="server" Enabled ="True" Format ="dd/MM/yyyy"
OnClientDateSelectionChanged ="DateSelected" PopupButtonID ="imgcalendarNodatatstart" TargetControlID ="NoDatastart_date"></asp:CalendarExtender>
< asp:图片ID ="imgcalendarNodatatstart" runat =服务器" ImageUrl =图片/Calendar_scheduleHS.png"/>
< asp:RequiredFieldValidator ID ="RFVNoDatastartdate" runat ="server" ControlToValidate ="NoDatastart_date"
ErrorMessage ="*" ValidationGroup ="NoDataInsert"></asp:RequiredFieldValidator>
昨晚:< asp:TextBox ID ="NoDataend_date" runat ="server" Height ="15px" ReadOnly ="True"
Text =''<%#Bind("end_date")%>''Width ="65px"/>
< asp:CalendarExtender ID ="calNoDataend_date" runat ="server" Enabled ="True" Format ="dd/MM/yyyy"
PopupButtonID ="imgcalendarNodatatend" TargetControlID ="NoDataend_date"></asp:CalendarExtender>
< asp:图片ID ="imgcalendarNodatatend" runat =服务器"
ImageUrl ="Images/Calendar_scheduleHS.png"/>
< asp:RequiredFieldValidator ID ="RFVNodataEndDate" runat =服务器" ControlToValidate ="NoDataend_date"
ErrorMessage ="*" ValidationGroup ="NoDataInsert"></asp:RequiredFieldValidator>
< asp:CompareValidator ID ="CVNodataEnddate" runat ="server" ControlToCompare ="NoDatastart_date"
ControlToValidate ="NoDataend_date" ErrorMessage =结束日期应大于开始日期"
运算符="GreaterThan" ValidationGroup ="NoDataInsert"></asp:CompareValidator>
每周汇率:< asp:TextBox ID ="NoDataweekly_rate" runat ="server" Height ="15px"
Text =''<%#Bind("weekly_rate")%>''Width ="50px"/>
< asp:RequiredFieldValidator ID ="RFVNodataWeeklyRate" runat =服务器" ControlToValidate ="NoDataweekly_rate"
ErrorMessage ="*" ValidationGroup ="NoDataInsert"></asp:RequiredFieldValidator>
< asp:CompareValidator ID ="CVNoDataWeeklyRate" runat =服务器" ControlToValidate ="NoDataweekly_rate"
ErrorMessage =输入有效率"运算符="DataTypeCheck"类型="Double" ValidationGroup ="NoDataInsert"></asp:CompareValidator>
</EmptyDataTemplate>
< RowStyle BorderColor =米色" BorderWidth ="1px"/>
</asp:GridView>

用户可以输入开始日期,结束日期和价格.一旦用户单击插入",该记录将保存在数据库中.
我现在要做的是检查是否输入了12个月(365天)的开始日期,结束日期和价格,或者检查是否有未输入价格的缺失日期并提醒用户.


<您可以在两行之间比较结束日期​​和开始日期.意味着检查nextrow的开始日期将是上一个结束日期的下一个日期.取这两个日期之间的差值

Hello Everyone

I am using gridview with columns Startdate, enddate and price

I need to check that if user enters price for 365 days

Ex :

startdate enddate Price
--------- ------- -----
1/1/2011 28/2/2011 100
1/3/2011 2/5/2011 100
3/5/2011 1/7/2011 250
10/7/2011 15/9/2011 200---- there is a gap of days(there no price From 2/7/2011 till 9/7/2011)
17/9/2011 1/11/2011 100 ----there is a gap of 1 days(there is no price for day 16/9/2011)
17/11/2011 31/12/2011 100-----there is gap of 16 days (there is no price from 2/11/2011 till 16/11/2011)

How do i find missing days for which price is not entered in a year in grid??

解决方案

@Maulik
I have a gridview, which is as below

<asp:GridView ID="gvShortStayRate" runat="server" AutoGenerateColumns="False"
BorderColor="Black" BorderWidth="1px" DataKeyNames="Id"
DataSourceID="ShortTermRateDS" OnRowCommand="gvShortStayRate_RowCommand"
ShowFooter="True">
<Columns>

<asp:TemplateField HeaderText="First night">
<EditItemTemplate>
<asp:TextBox ID="Editstart_date" runat="server" Height="15px" ReadOnly="True"
Text=''<%# Bind("start_date") %>'' Width="65px" />
<asp:CalendarExtender ID="calstart_date" runat="server" Enabled="True" Format="dd/MM/yyyy"
PopupButtonID="img_calendarstart" TargetControlID="Editstart_date"></asp:CalendarExtender>
<asp:Image ID="img_calendarstart" runat="server" ImageUrl="Images/Calendar_scheduleHS.png" />
<asp:RequiredFieldValidator ID="RFVEditStartDate" runat="server" ControlToValidate="Editstart_date"
ErrorMessage="*" ValidationGroup="Edit"></asp:RequiredFieldValidator>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="Insertstart_date" runat="server" Height="15px" ReadOnly="True"
Text=''<%# Bind("start_date") %>'' Width="65px" />
<asp:CalendarExtender ID="calInsertstart_date" runat="server" Enabled="True"
Format="dd/MM/yyyy" PopupButtonID="imgcalendarInsertstart"
TargetControlID="Insertstart_date"></asp:CalendarExtender>
<asp:Image ID="imgcalendarInsertstart" runat="server"
ImageUrl="Images/Calendar_scheduleHS.png" />
<asp:RequiredFieldValidator ID="RFVInsertStartDate" runat="server"
ControlToValidate="Insertstart_date" ErrorMessage="*" ValidationGroup="Insert"></asp:RequiredFieldValidator>
</FooterTemplate>
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last night">
<EditItemTemplate>
<asp:TextBox ID="Editend_date" runat="server" Height="15px" ReadOnly="True"
Text=''<%# Bind("end_date") %>'' Width="65px" />
<asp:CalendarExtender ID="calEditend_date" runat="server" Enabled="True" Format="dd/MM/yyyy"
PopupButtonID="imgcalendarEditend" TargetControlID="Editend_date"></asp:CalendarExtender>
<asp:Image ID="imgcalendarEditend" runat="server" ImageUrl="Images/Calendar_scheduleHS.png" />
<asp:RequiredFieldValidator ID="RFVEditEndDate" runat="server" ControlToValidate="Editend_date"
ErrorMessage="*" ValidationGroup="Edit"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVEnddate" runat="server" ControlToCompare="EditStart_date"
ControlToValidate="Editend_date" ErrorMessage="end date should be greater than start date"
Operator="GreaterThan" ValidationGroup="Edit"></asp:CompareValidator>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="Insertend_date" runat="server" Height="15px" ReadOnly="True"
Text=''<%# Bind("end_date") %>'' Width="65px" />
<asp:CalendarExtender ID="calInsertend_date" runat="server" Enabled="True"
Format="dd/MM/yyyy" PopupButtonID="imgcalendarInserttend"
TargetControlID="Insertend_date"></asp:CalendarExtender>
<asp:Image ID="imgcalendarInserttend" runat="server"
ImageUrl="Images/Calendar_scheduleHS.png" />
<asp:RequiredFieldValidator ID="RFVInsertEndDate" runat="server"
ControlToValidate="Insertend_date" ErrorMessage="*" ValidationGroup="Insert"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVInsertEnddate" runat="server"
ControlToCompare="Insertstart_date" ControlToValidate="Insertend_date"
ErrorMessage="end date should be greater than start date"
Operator="GreaterThan" ValidationGroup="Insert"></asp:CompareValidator>
</FooterTemplate>
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Weekly rate">
<EditItemTemplate>
<asp:TextBox ID="Editweekly_rate" runat="server" Height="15px"
Text=''<%# Bind("weekly_rate") %>'' Width="50px" />
<asp:RequiredFieldValidator ID="RFVWeeklyRate" runat="server" ControlToValidate="Editweekly_rate"
ErrorMessage="*" ValidationGroup="Edit"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVWeeklyRate" runat="server" ControlToValidate="Editweekly_rate"
ErrorMessage="Enter Valid Rate" Operator="DataTypeCheck" Type="Double"
ValidationGroup="Edit"></asp:CompareValidator>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="Insertweekly_rate" runat="server" Height="15px"
Text=''<%# Bind("weekly_rate") %>'' Width="50px" />
<asp:RequiredFieldValidator ID="RFVInsertWeeklyRate" runat="server"
ControlToValidate="Insertweekly_rate" ErrorMessage="*" ValidationGroup="Insert"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVInsertWeeklyRate" runat="server"
ControlToValidate="Insertweekly_rate" ErrorMessage="Enter Valid Rate"
Operator="DataTypeCheck" Type="Double" ValidationGroup="Insert"></asp:CompareValidator>
</FooterTemplate>
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Commands">
<EditItemTemplate>
<asp:Button ID="Update" runat="server" CommandArgument=''<%#Eval("id") %>''
CommandName="Update" Text="Update" ValidationGroup="Edit" />
<asp:Button ID="Cancel" runat="server" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<FooterTemplate>
<asp:Button ID="Insert" runat="server" CommandName="InsertNew" Text="Insert"
ValidationGroup="Insert" />
</FooterTemplate>
<ItemTemplate>
<asp:Button ID="Edit" runat="server" CommandName="Edit" Text="Edit" />
<asp:Button ID="Delete" runat="server" CommandName="Delete" Text="Delete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>

First night:<asp:TextBox ID="NoDatastart_date" runat="server" Height="15px" ReadOnly="True"
Text=''<%# Bind("start_date") %>'' Width="65px" />
<asp:CalendarExtender ID="calNoDatastart_date" runat="server" Enabled="True" Format="dd/MM/yyyy"
OnClientDateSelectionChanged="DateSelected" PopupButtonID="imgcalendarNodatatstart" TargetControlID="NoDatastart_date"></asp:CalendarExtender>
<asp:Image ID="imgcalendarNodatatstart" runat="server" ImageUrl="Images/Calendar_scheduleHS.png" />
<asp:RequiredFieldValidator ID="RFVNoDatastartdate" runat="server" ControlToValidate="NoDatastart_date"
ErrorMessage="*" ValidationGroup="NoDataInsert"></asp:RequiredFieldValidator>
Last night:<asp:TextBox ID="NoDataend_date" runat="server" Height="15px" ReadOnly="True"
Text=''<%# Bind("end_date") %>'' Width="65px" />
<asp:CalendarExtender ID="calNoDataend_date" runat="server" Enabled="True" Format="dd/MM/yyyy"
PopupButtonID="imgcalendarNodatatend" TargetControlID="NoDataend_date"></asp:CalendarExtender>
<asp:Image ID="imgcalendarNodatatend" runat="server"
ImageUrl="Images/Calendar_scheduleHS.png" />
<asp:RequiredFieldValidator ID="RFVNodataEndDate" runat="server" ControlToValidate="NoDataend_date"
ErrorMessage="*" ValidationGroup="NoDataInsert"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVNodataEnddate" runat="server" ControlToCompare="NoDatastart_date"
ControlToValidate="NoDataend_date" ErrorMessage="end date should be greater than start date"
Operator="GreaterThan" ValidationGroup="NoDataInsert"></asp:CompareValidator>
Weekly rate:<asp:TextBox ID="NoDataweekly_rate" runat="server" Height="15px"
Text=''<%# Bind("weekly_rate") %>'' Width="50px" />
<asp:RequiredFieldValidator ID="RFVNodataWeeklyRate" runat="server" ControlToValidate="NoDataweekly_rate"
ErrorMessage="*" ValidationGroup="NoDataInsert"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVNoDataWeeklyRate" runat="server" ControlToValidate="NoDataweekly_rate"
ErrorMessage="Enter Valid Rate" Operator="DataTypeCheck" Type="Double" ValidationGroup="NoDataInsert"></asp:CompareValidator>
</EmptyDataTemplate>
<RowStyle BorderColor="Beige" BorderWidth="1px" />
</asp:GridView>

User can enter startdate,enddate and price.Once user clicks on Insert this record is saved in database.
What i have to do now is check whether startdate,enddate and price is entered for 12 months (365 days) or check if there is any missing days for which price is not entered and alert user.


you can compare a enddate and start date between two rows.means check the startdate of nextrow will bethe next date of previous endadte. take difference between these two dates


这篇关于在datagrid中检查日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆