我在gridview中有一个标签,并希望将DT的值默认为今天的日期。我想在gridview 2015-02-17中这样展示。这是gridview中标签的aspx
<asp:TemplateField ItemStyle-Width="150px" HeaderText="Date">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("DT")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
绑定gridview的代码
private void Bind_GV_Test()
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(strConnString))
{
string strQuery = "select ID, Name, Location, DT from myTable ";
SqlCommand cmd = new SqlCommand(strQuery);
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
gv_Test.DataSource = dt;
gv_Test.DataBind();
con.Close();
con.Dispose();
}
}
}
答案 0 :(得分:5)
为什么要去DB服务器找出今天的日期?
<div ID="Label1"><%=DateTime.Now.Date%></div>
答案 1 :(得分:4)
如果是ISNULL
,您可以使用COALESCE
或NULL
来使用GETDATE
:
string strQuery = @"SELECT ID,
Name,
Location,
DT = ISNULL(DT, GETDATE())
FROM dbo.myTable";
如果您只想显示日期部分,请使用
Text='<%# Bind("DT", "{0:yyyy-MM-dd}") %>'
或(强制使用当前文化的日期格式)
Text='<%# Bind("DT", "{0:d}") %>'
答案 2 :(得分:2)
如果值可以是null
那么:
select ID, Name, Location, COALESCE(DT, getdate()) AS DT from myTable
答案 3 :(得分:1)
另一个选项,无需更改您的查询(并假设您想用今天的日期替换空日期):
Text='<%# string.Format(
"{0:yyyy-MM-dd}",
string.IsNullOrEmpty(Eval("DT").ToString()) ?
DateTime.Today : Eval("DT")) %>'
答案 4 :(得分:0)
将sql命令更改为
string strQuery = "select ID, Name, Location, getdate() as DT from myTable ";
DT将是当前的日期时间。