CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

有关TemplateColumn及数据类型转换

楼主alan99(阿蓝)2003-09-03 18:48:54 在 .NET技术 / ASP.NET 提问

我在SQL数据表里有一个字段是datetime类型的.我往这个字段插入一个datetime型的数据"1988-1-1",可是当我把这个值用datagrid显示出来时,它变成了"1988-1-1   0:00:00",然后我用了BoundColumn的DataFormatString属性解决了这个问题,使其显示为"1988-1-1",即:  
  <BoundColumn   DataFormatString={0:d}></BoundColumn>  
  可是后来,我改用了TemplateColumn模板,它不支持DataFormatString属性,显示出来的日期又变成了1988-1-1   0:00:00,请问各位这怎么办?后来改用的代码为:  
  <asp:TemplateColumn   HeaderText="生日"   SortExpression="birthday">  
      <ItemTemplate>  
      <asp:label   runat="server"   Text='<%#   DataBinder.Eval(Container.DataItem,   "birthday")   %>'/>  
      </ItemTemplate>  
      <EditItemTemplate>  
      <asp:textbox   id="textbox_birthday"   runat="server"   Text='<%#   DataBinder.Eval(Container.DataItem,   "birthday")   %>'/>  
      <asp:requiredfieldvalidator   id="rfv_birthday"   runat="server"   ErrorMessage="*"   Display="Dynamic"   ControlToValidate="textbox_birthday"/>  
      </EditItemTemplate>  
      </asp:TemplateColumn>  
  我要用验证控件,所以必须用TemplateColumn  
   
   
  或者我用BoundColumn,那怎么使用验证控件呢? 问题点数:50、回复次数:10Top

1 楼saucer(思归)回复于 2003-09-04 02:31:00 得分 30

add   a   third   parameter   to   DataBinder.Eval:  
  <asp:label   runat="server"   Text='<%#   DataBinder.Eval(Container.DataItem,   "birthday","{0:d}")   %>'/>Top

2 楼cnhgj(戏子) (没时间练太极)回复于 2003-09-04 02:36:36 得分 7

<asp:label   runat="server"   Text='<%#   string.Format("{0:d}",DataBinder.Eval(Container.DataItem,   "birthday")   %>'/>  
  Top

3 楼cnhgj(戏子) (没时间练太极)回复于 2003-09-04 02:36:55 得分 0

<asp:label   runat="server"   Text='<%#   string.Format("{0:d}",DataBinder.Eval(Container.DataItem,   "birthday"))   %>'/>Top

4 楼BenZ004(仲陵)回复于 2003-09-04 05:05:16 得分 7

1:你可以在数据库查询时就把birthday这个字段用substring()来截取;  
   
  2,在模板列中加一个参数:<asp:label   runat="server"   Text='<%#   DataBinder.Eval(Container.DataItem,   "birthday","{0:d}")   %>'/>Top

5 楼yewei4u(yewei)回复于 2003-09-04 08:32:20 得分 1

DataBinder.Eval()Top

6 楼alan99(阿蓝)回复于 2003-09-04 14:34:12 得分 0

请教一段程序,我想实现DATAGRID里的单行数据就地更新,下面是UPDATE的响应程序,好像有问题,是不是方法不对?请指教:  
      void   dg_update(object   sender,DataGridCommandEventArgs   e)  
      {  
        string   username=e.Item.Cells[1].Text;  
        string   password=((System.Web.UI.WebControls.TextBox)e.Item.Cells[2].Controls[0]).Text.Trim();  
        string   sex=((System.Web.UI.WebControls.TextBox)e.Item.Cells[3].Controls[0]).Text.Trim();  
        string   birthday=((System.Web.UI.WebControls.TextBox)e.Item.Cells[4].Controls[0]).Text.Trim();  
        string   tel=((System.Web.UI.WebControls.TextBox)e.Item.Cells[5].Controls[0]).Text.Trim();  
        string   email=((System.Web.UI.WebControls.TextBox)e.Item.Cells[6].Controls[0]).Text.Replace("'","''").Trim();  
        string   favour=((System.Web.UI.WebControls.TextBox)e.Item.Cells[7].Controls[0]).Text.Replace("'","''").Trim();  
        string   proverb=((System.Web.UI.WebControls.TextBox)e.Item.Cells[8].Controls[0]).Text.Replace("'","''").Trim();  
         
        string   string_cn="server=10.137.8.101;database=mydb;uid=sa;pwd=sa";  
        SqlConnection   cn=new   SqlConnection(string_cn);  
        cn.Open();  
        SqlDataAdapter   mydataadapter=new   SqlDataAdapter();  
        string   string_search="select   *   from   table_user   where   username='"+username+"'";  
        string   string_update="update   table_user   set   password='"+password+"',sex='"+sex+"',birthday='"+birthday+"',tel='"+tel  
                                                      +"',email='"+email+"',favour='"+favour+"',proverb='"+proverb+"'where   username='"+username+"'";  
        mydataadapter.SelectCommand=new   SqlCommand(string_search,cn);  
        mydataadapter.UpdateCommand=new   SqlCommand(string_update,cn);  
        DataSet   mydataset=new   DataSet();  
        mydataadapter.Fill(mydataset,"table_user");  
        mydataset.Tables["table_user"].Rows[0]["password"]=password;  
        mydataset.Tables["table_user"].Rows[0]["sex"]=sex;  
        mydataset.Tables["table_user"].Rows[0]["birthday"]=DateTime.Parse(birthday);  
        mydataset.Tables["table_user"].Rows[0]["tel"]=tel;  
        mydataset.Tables["table_user"].Rows[0]["email"]=email;  
        mydataset.Tables["table_user"].Rows[0]["favour"]=favour;  
        mydataset.Tables["table_user"].Rows[0]["proverb"]=proverb;  
        mydataadapter.Update(mydataset,"table_user");  
        dg_search.DataSource=mydataset.Tables["table_user"].DefaultView;  
        dg_search.DataBind();  
        cn.Close();  
        }Top

7 楼saucer(思归)回复于 2003-09-04 20:25:43 得分 0

string   string_update="update   table_user   set   password='"+password+"',sex='"+sex+"',birthday='"+birthday+"',tel='"+tel  
                                                      +"',email='"+email+"',favour='"+favour+"',proverb='"+proverb+"'where   username='"+username+"'";  
   
        SqlCommmand   cmd   =   new   SqlCommand(string_update,cn);  
        cmd.ExecuteNonQuery();  
   
        SqlDataAdapter   mydataadapter=new   SqlDataAdapter();  
        string   string_search="select   *   from   table_user   where   username='"+username+"'";  
        mydataadapter.SelectCommand=new   SqlCommand(string_search,cn);  
   
        DataSet   mydataset=new   DataSet();  
        mydataadapter.Fill(mydataset,"table_user");  
        cn.Close();  
   
        dg_search.DataSource=mydataset.Tables["table_user"].DefaultView;  
        dg_search.DataBind();  
         
  Top

8 楼alan99(阿蓝)回复于 2003-09-04 22:06:19 得分 0

思归,你的方法是不通过DATASET直接修改数据库吧,我试过了,还是出错啊,编译是能通过,但运行时出错.  
   
  直接修改数据库与通过DATASET有什么区别?Top

9 楼alan99(阿蓝)回复于 2003-09-05 12:04:19 得分 0

思归,好像是这部份有问题,报错说转换无效:  
        string   username=e.Item.Cells[1].Text;  
        string   password=((System.Web.UI.WebControls.TextBox)e.Item.Cells[2].Controls[0]).Text.Trim();  
        string   sex=((System.Web.UI.WebControls.TextBox)e.Item.Cells[3].Controls[0]).Text.Trim();  
        string   birthday=((System.Web.UI.WebControls.TextBox)e.Item.Cells[4].Controls[0]).Text.Trim();  
        string   tel=((System.Web.UI.WebControls.TextBox)e.Item.Cells[5].Controls[0]).Text.Trim();  
        string   email=((System.Web.UI.WebControls.TextBox)e.Item.Cells[6].Controls[0]).Text.Replace("'","''").Trim();  
        string   favour=((System.Web.UI.WebControls.TextBox)e.Item.Cells[7].Controls[0]).Text.Replace("'","''").Trim();  
        string   proverb=((System.Web.UI.WebControls.TextBox)e.Item.Cells[8].Controls[0]).Text.Replace("'","''").Trim();Top

10 楼caoit(lost)回复于 2003-09-06 11:23:21 得分 5

用循环会好一点,Top

相关问题

  • 数据类型的转换!
  • 数据类型转换?
  • 数据类型转换,急!
  • 数据类型的转换。
  • 数据类型转换
  • 数据类型转换
  • ※ 数据类型转换
  • 数据类型转换
  • 数据类型转换
  • 数据类型转换

关键词

  • 字段
  • 数据
  • templatecolumn
  • webcontrols
  • trim
  • cells
  • textbox
  • ui
  • controls
  • item

得分解答快速导航

  • 帖主:alan99
  • saucer
  • cnhgj
  • BenZ004
  • yewei4u
  • caoit

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo