怎样把源数据的列名 以别名映射到 datagrid 里?

解决方案 »

  1.   

    多种方法
    1,sql中处理
    select 
    "姓名"=name,
    "性别"=sex
    from tablename2,在ItemDataBound事件中处理
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Header)
    {
    e.Item.Cells[0].Text="姓名";
    e.Item.Cells[1].Text="性别";
    }
    }
      

  2.   

    select name as "姓名", sex as "性别" from tb
      

  3.   

    DataGridTableStyle,
    from MSDN:
    private void AddCustomDataTableStyle()
       {
          /* Create a new DataGridTableStyle and set
          its MappingName to the TableName of a DataTable. */
          DataGridTableStyle ts1 = new DataGridTableStyle();
          ts1.MappingName = "Customers";      /* Add a GridColumnStyle and set its MappingName 
          to the name of a DataColumn in the DataTable. 
          Set the HeaderText and Width properties. */
          
          DataGridColumnStyle boolCol = new DataGridBoolColumn();
          boolCol.MappingName = "Current";
          boolCol.HeaderText = "IsCurrent Customer";
          boolCol.Width = 150;
          ts1.GridColumnStyles.Add(boolCol);
          
          // Add a second column style.
          DataGridColumnStyle TextCol = new DataGridTextBoxColumn();
          TextCol.MappingName = "custName";
          TextCol.HeaderText = "Customer Name";
          TextCol.Width = 250;
          ts1.GridColumnStyles.Add(TextCol);
          // Create the second table style with columns.
          DataGridTableStyle ts2 = new DataGridTableStyle();
          ts2.MappingName = "Orders";
          // Change the colors.
          ts2.ForeColor = Color.Yellow;
          ts2.AlternatingBackColor = Color.Blue;
          ts2.BackColor = Color.Blue;
          
          // Create new DataGridColumnStyle objects.
          DataGridColumnStyle cOrderDate = 
          new DataGridTextBoxColumn();
          cOrderDate.MappingName = "OrderDate";
          cOrderDate.HeaderText = "Order Date";
          cOrderDate.Width = 100;
          ts2.GridColumnStyles.Add(cOrderDate);      PropertyDescriptorCollection pcol = this.BindingContext
          [myDataSet, "Customers.custToOrders"].GetItemProperties();
          
          DataGridColumnStyle csOrderAmount = 
          new DataGridTextBoxColumn(pcol["OrderAmount"], "c", true);
          csOrderAmount.MappingName = "OrderAmount";
          csOrderAmount.HeaderText = "Total";
          csOrderAmount.Width = 100;
          ts2.GridColumnStyles.Add(csOrderAmount);      // Add the DataGridTableStyle objects to the collection.
          myDataGrid.TableStyles.Add(ts1);
          myDataGrid.TableStyles.Add(ts2);
       }