第一问:时间显示问题,数据库中时间字段为“SmallDateTime”类型
在DataGrid中显示为“2008-10-11 0:00:00”我想把他显示成 2008-10-11
第二问:在显示人名的时候,我存入数据库的时候是“DropDownList”绑定存入的是
“SelectedValue.ToString();”也就是存入的值,数据库字段类型是“int”
在DataGrid中显示为“1”我想把他显示成 小王 应该如何绑定请高手帮着看看!
绑定代码如下:if(!IsPostBack)
{
SqlConnection con = DataCon.DataJCon.JCon();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("Work_GetList",con);
DataSet ds = new DataSet();
sda.Fill(ds,"emp");
this.DataGrid1.DataSource=ds.Tables["emp"];
this.DataGrid1.DataKeyField = "WorkId";
this.DataGrid1.DataBind();
con.Close();
}

解决方案 »

  1.   

    这个都可以在前台更改
    <asp:BoundColumn   DataField="PublishDate"   HeaderText="时间"   DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>也是可以的!同时你也可以在sql语句里面就进行格式化
      

  2.   

    第二在绑定事件里DataGrid1_ItemDataBound进行转化
      

  3.   

    DataGrid1_ItemDataBound在这里进行判断吗?
    能否给我个例子?
      

  4.   

    第二问可以在select时用case处理。
      

  5.   


    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.AlternatingItem ||e.Item.ItemType == ListItemType.Item)
    {
    string nameid = ((控件类型如Label)e.Item.FindControl("显示人名的控件ID)).Text;
                                         if(nameid == "1")
                                         {
                                            ((控件类型如Label)e.Item.FindControl("显示人名的控件ID)).Text = "小王";
                                          } }
    }
      

  6.   

    2 类似如此的绑定<%#DataBinder.Eval(Container.DataItem,"summary")==DBNull.Value ? IWMS.Utility.WbText.NoHtml((string)DataBinder.Eval(Container.DataItem,"content")): IWMS.Utility.WbText.UrlAddPrefix((string)DataBinder.Eval(Container.DataItem,"summary"),urlPrefix)%>
      

  7.   

    如果该ID 有数据库表对应的话
    判断那块
    可以换成SQL 语句把人名取出就OK 了
      

  8.   

    显示人名的控件ID
    这个控件是DataGrid吧?
    控件类型如Label?
    这个地方是什么意思?请指教!谢谢!
      

  9.   

    <asp:BoundColumn   DataField="PublishDate"   HeaderText="时间"   DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>  利用DataFormatString是最合理的方式!
      

  10.   

    第二问回答:
    建议创建一个数据库视图,把userid,username关联进去,然后绑定时直接取username即可,效率会比在itembound写程序每次都会有一次数据库交互高得多!!
      

  11.   

    你用来显示人名的控件是什么,如果是用Lable的话,而且Label的ID为label1的话
    string nameid = ((Label)e.Item.FindControl("label1")).Text;
    if(nameid == "1")
    {
          ((Label)e.Item.FindControl("label1")).Text = "小王";
    }从HTML代码看就是绑定列中的控件
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.nameid") %>'></asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  12.   

    恩,其实如果你如果会写SQL语句的话,一条语句就直接取出来了。