在我的项目中,我正在跟踪我有预期日期和实际日期的截止日期。所有信息都存储在SQL Server 2008数据库中。
始终输入预期日期,但实际日期不是。当我在GridView
进入编辑模式时,这给了我一个错误,因此我将所有实际日期设置为固定日期(1990-01-01)。
我打算在我的RowDataBound
函数中检查该固定日期。如果找到,我会用空字符串替换该日期(当然只在GridView
而不是在我的数据库中)。但是当我这样做并进入编辑模式时,我的日历控件就会消失。我该如何解决这个问题?
编辑:
ASPX代码:
<asp:TemplateField HeaderText="Actual Date" SortExpression="Actual_Date">
<EditItemTemplate>
<asp:Calendar ID="cal_act_date" runat="server"
VisibleDate='<%# DateTime.Now %>'
SelectedDate='<%# Bind("Actual_Date") %>' BackColor="White"
BorderColor="#999999" CellPadding="4" DayNameFormat="Shortest"
Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" Height="180px"
Width="200px">
<SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />
<SelectorStyle BackColor="#CCCCCC" />
<WeekendDayStyle BackColor="#FFFFCC" />
<TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" />
<OtherMonthDayStyle ForeColor="#808080" />
<NextPrevStyle VerticalAlign="Bottom" />
<DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" />
<TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" />
</asp:Calendar>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl_act_date" runat="server" Text='<%# Bind("Actual_Date", "{0:d}") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
代码隐藏:
protected void GV_Milestones_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["testServer"].ConnectionString);
conn.Open();
SqlCommand cmd_getActDate = new SqlCommand(@"SELECT [ms_tr_actual_date]
FROM [NSBP].[dbo].[tbl_milestones_tracking]
WHERE [ms_id] = " + e.Row.Cells[1].Text +
@" AND [ms_tr_bill_run] = '" + DDL_billrun.SelectedValue + "'", conn);
string value = Convert.ToString(cmd_getActDate.ExecuteScalar());
if (value.ToString() == "01/01/1990 00:00:00")
{
e.Row.Cells[7].ForeColor = Color.White;
}
conn.Close();
conn.Dispose();
}
}
答案 0 :(得分:0)
您需要首先检查日期是否为“1-1-1990”,然后在所选日期属性中显示空字符串。 您可以使用以下代码执行此操作: -
SelectedDate='<%# Convert.ToDateTime(Eval("Actual_Date")).ToString() == "01-01-1990" ? "" : Eval("Actual_Date") %>'
//“01-01-1990”是日期,您在数据库中输入