手动绑定GridView时,日期格式的设定

cncaa 2009-04-10 06:13:46
采用了手动绑定GridView,能正确搜索到想要的数据,但是里面日期列的格式,总会连时间也一起显示出来,该如何设定格式呢?
代码如下:
DataTable dt2 = new DataTable();
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = ConfigurationManager.ConnectionStrings["minqueryConnectionString"].ConnectionString;
myConnection.Open();
StringBuilder sql5 = new StringBuilder();
sql5.Append("select job_no as 'Job Number',");
sql5.Append("contract_no as 'Contract Number',");
sql5.Append("vessel_name as 'Vessel Name',");
sql5.Append("port_name as 'Load/Discharge Port Name',");
sql5.Append(" arrived_anchorage as 'Arrived Anchorage',berth_alongside as 'Berth Alongside',commenced as 'Load/Discharge Commenced', completed as 'Load/Discharge Completed'");
sql5.Append(" from minquery.dbo.load_port");
sql5.Append(" where (1=1");
if (this.TextBox1.Text.ToString().Trim() != "")
{
sql5.Append(" and vessel_name like '%" + this.TextBox1.Text.ToString().Trim() + "%'");
}
if (this.TextBox2.Text.ToString().Trim() != "")
{
sql5.Append(" and commenced >='" + this.TextBox2.Text.ToString().Trim() + "'");
}
if (this.TextBox3.Text.ToString().Trim() != "")
{
sql5.Append(" and commenced <='" + this.TextBox3.Text.ToString().Trim() + "'");
}
sql5.Append(")");
StringBuilder sql6 = new StringBuilder();
sql6.Append(" select job_no as 'Job Number',");
sql6.Append(" contract_no as 'Contract Number',");
sql6.Append(" vessel_name as 'Vessel Name',");
sql6.Append(" port_name as 'Load/Discharge Port Name',");
sql6.Append(" arrived_anchorage as 'Arrived Anchorage',berth_alongside as 'Berth Alongside',commenced as 'Load/Discharge Commenced', completed as 'Load/Discharge Completed'");
sql6.Append(" from minquery.dbo.discharge_port");
sql6.Append(" where (1=1");
if (this.TextBox1.Text.ToString().Trim() != "")
{
sql6.Append(" and vessel_name like '%" + this.TextBox1.Text.ToString().Trim() + "%'");
}
if (this.TextBox2.Text.ToString().Trim() != "")
{
sql6.Append(" and commenced >='" + this.TextBox2.Text.ToString().Trim() + "'");
}
if (this.TextBox3.Text.ToString().Trim() != "")
{
sql6.Append(" and commenced <='" + this.TextBox3.Text.ToString().Trim() + "'");
}
sql6.Append(" )");
string sql7 = sql5 + " union " + sql6;
SqlDataAdapter myAdapter1 = new SqlDataAdapter(sql7, myConnection);
myAdapter1.Fill(dt2);
this.GridView2.DataSource = dt2;
this.GridView2.DataBind();
...全文
396 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kevin_xu4365 的回复:]

如果是手动添加的BoundField,设置DataFormatString为{0:yyyy-MM-dd},然后将其htmlencode设为false即可。
[/Quote]
pei_0454 2011-06-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 whoami333 的回复:]

在RowDataBound事件中处理。
[/Quote]
如何在RowDataBound事件中处理呢?
cncaa 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cncaa 的回复:]
问题解决,谢谢大家,想问一下按照这种数据绑定方式,如何来控制单元格的宽度呢?
[/Quote]

是在gridview 的属性里设置吗?我试过好像不行
lgaimin 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Sandy945 的回复:]
如果是 <asp:BoundField
那么设置 DataFormatString="{0:yyyy-MM-dd}"

如果是 <%#Eval("field")%>
那么 <%#Eval("field").ToString("yyyy-MM-dd")%>

也可以sql 中直接转换
CONVERT(VARCHAR(20),fieldName,120)
[/Quote]
楼主可以用这样的方法.
djf_1985 2009-04-13
  • 打赏
  • 举报
回复
可以设置宽度,但如果你的总宽度不够你所有列自然显示的长度时,设置可能无效
cncaa 2009-04-13
  • 打赏
  • 举报
回复
问题解决,谢谢大家,想问一下按照这种数据绑定方式,如何来控制单元格的宽度呢?
pciak 2009-04-11
  • 打赏
  • 举报
回复
楼上几位都说得很清楚了,偶接分来了
kevin_xu4365 2009-04-10
  • 打赏
  • 举报
回复
如果是手动添加的BoundField,设置DataFormatString为{0:yyyy-MM-dd},然后将其htmlencode设为false即可。
kevin_xu4365 2009-04-10
  • 打赏
  • 举报
回复
如果是手动添加的BoundField,设置DataFormatString为{0:yyyy-MM-dd},然后将其htmlencode设为false即可。
lzwc050311 2009-04-10
  • 打赏
  • 举报
回复
sql语句如下:
select convert(vachar(10),日期字段,120) from
angellan 2009-04-10
  • 打赏
  • 举报
回复
在程序中实现:
<%# Eval("date", "{0:d}")%>
<%#((DateTime)(Eval("date"))).ToString("yyyy-MM-dd")%>
在sql语句里实现
select convert(varchar(10),列名,102)
whoami333 2009-04-10
  • 打赏
  • 举报
回复
在RowDataBound事件中处理。
阿非 2009-04-10
  • 打赏
  • 举报
回复
如果是<asp:BoundField
那么设置 DataFormatString="{0:yyyy-MM-dd}"

如果是<%#Eval("field")%>
那么<%#Eval("field").ToString("yyyy-MM-dd")%>

也可以sql 中直接转换
CONVERT(VARCHAR(20),fieldName,120)

kkun_3yue3 2009-04-10
  • 打赏
  • 举报
回复
或者


DateTime.Now.ToString("yyyy-MM-dd");
kkun_3yue3 2009-04-10
  • 打赏
  • 举报
回复
那一列是日期列呀


假如是DateColumn吧,在SQL这样写


CONVERT(NVARCHAR(10),DateColumn,120)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧