一个综合查询(现在功能简化一下),我要实现一个下拉框选择数据库名
此下拉框调用TABLECOLUMNS表,这个表结构如下
id
columns表的各个列表
name表的列表中文
tablename表的名字数据如下所示
1    Title   标题    ArticleNews
2    Content  内容   ArticleNews
3    aaaa    好好好  表a
4    bbbb    妇好好  表b
这张就是记录下其它表的结构,方便载入到这个下拉框里面现在要我实现选择下拉框,DataGrid显示所选tablename=所选表名的数据,也就是说我选新闻查询时,会得到ArticleNews,这个时候DataGrid会获取ArticleNews表中的数据,但是现在问题是,它所显示的列名是英文的,但我不能显示英文,要显示中文,我想调TABLECOLUMNS表中的数据一起显示在页眉上
(注意,各表的结构不一样,字段不一样,名字也不一样,要动态加载所选表中数据,也要一起加载TABLECOLUMNS表中数据显示到一个DataGrid)请教高手解决!!!!!

解决方案 »

  1.   

    DataGrid.Columns[i].HeaderText = "";
    这样不可以嘛?
      

  2.   

    一两句话说不清楚
    有兴趣的话,加MSN说,[email protected]
      

  3.   

    DataTableMapping custMap = custDA.TableMappings.Add("Table", "tablename");
    custMap.ColumnMappings.Add( "标题", "Title");custMap.ColumnMappings.Add( "中文标题", "英文字段");
    .......
    custDA.Fill(custDS);
      

  4.   

    to ar7_top(黑白呸,男生女生呸) 我已经加了
    to littlekeen(keen)  必须要动态实现,有没有实际一点的?custMap.ColumnMappings.Add( "标题", "Title");不可能在代码写
      

  5.   

    判断每个DataTable的列名,
    foreach(DataTable myTable in myDataSet.Tables){
           foreach(DataColumn myColumn in myTable.Columns){
              if myColumn.ColumnName == "Title"
               {...custMap.ColumnMappings.Add( "标题", "Title");...} }
    }}
      

  6.   

    简单,动态生成datagrid就行了,
    告诉你思路,自己去实现:
          由表名分别查询出两个表,分别是TABLECOLUMNS表中的相关的记录和另一个表,然后动态绑定,类似的代码如下:DataGrid dg = new DataGrid();
    dg.Width = System.Web.UI.WebControls.Unit.Pixel(680);
    dg.Font.Size = System.Web.UI.WebControls.FontUnit.XSmall;
    dg.BorderColor = System.Drawing.Color.DarkGray;
    dg.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
    dg.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(1);
    dg.HeaderStyle.Font.Bold = true; 
    dg.HeaderStyle.BackColor = System.Drawing.Color.SkyBlue;DataSet ds =  ...//取出要取具体的内容的表
    dg.DataSource = ds.Tables[0].DefaultView;
    dg.AutoGenerateColumns = false;DataSet dss =  ...//取出要取标题头的内容的表//分别取出表头和绑定列。放入下面两个数组,其中的代码自己写。这两个数组长度应该是一样的(不一样就是你自己有问题了)
    string [] titles;
    string [] fields;
    //然后有绑定
    for(i=0 ;i<len ;i++)
    {
    System.Web.UI.WebControls.HyperLinkColumn col = new System.Web.UI.WebControls.HyperLinkColumn();
    col.HeaderText = titles[i];
    col.DataTextField =  fields[i];
    dg.Columns.Add(col); 
    dg.DataBind();
      

  7.   


    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) //数据绑定后事件
    {
      if(e.Item.ItemType==ListItemType.Header)//判定为页眉
         {
           for (int i=0;i<ds.Tables[0].Rows.Count;i++)//循环赋值
            {
              e.Item.Text=ds.Tables[0].Rows[i]["name"].ToString();.
            }
           
         }
    }
      

  8.   

    e.Item.Text=ds.Tables[0].Rows[i]["name"].ToString();.
    更正:
    e.Item.Cells[i].Text=ds.Tables[0].Rows[i]["name"].ToString();.
      

  9.   

    1、用DataGrid.Columns[i].HeaderText = "";
    动态赋列头名,这样的话记得在绑定之前赋,绑定后赋无效。
    2、写ItemDataBound事件。
    判断每个DataTable的列名,
    foreach(DataTable myTable in myDataSet.Tables){
           foreach(DataColumn myColumn in myTable.Columns){
              if myColumn.ColumnName == "Title"
               {...custMap.ColumnMappings.Add( "标题", "Title");...} }
    }}