我用的是.net2003
我希望用datagrid绑定arraylist,然后字段的名称用的是中文名,请问该怎样做?
例如:
MyObj a;
a.name="abc";
my_array_list.add(a);
my_data_grid.datasource=my_array_list;
结果datagrid显示的是:  name
_________
  abc我希望显示的结果是:  姓名
__________
  abc

解决方案 »

  1.   

    在ItemDataBound中处理
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if (e.Item.ItemType!=ListItemType.Header)
            {
    e.Item.Cells[0].Text="姓名";
    }
    }
      

  2.   

    在ItemDataBound中处理
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Header)
            {
    e.Item.Cells[0].Text="姓名";
    }
    }
    搞错了,是==
      

  3.   

    <asp:BoundColumn DataField="!" HeaderText="test"/>
    <asp:TemplateColumn HeaderText="test">
        <ItemTemplate>
        <%#Container.DataItem%>
        </ItemTemplate>
    </asp:TemplateColumn>
      

  4.   

    楼主说的应该是winform:
    试试下面的方法:先添加1个dataGridTableStyle1把它的MappingName设置为ArrayList    (这步重要)然后就添加对应字段的dataGridTextBoxColumn
      

  5.   

    1、如果是Web,singlepine(小山) 的是正解
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Header)
            {
    e.Item.Cells[0].Text="姓名";
    }
    }
    2、如是Winform,则要用dataGridTableStyle了,以下给出代码(没测试,不过思路是对了,楼主可以测一下):my_data_grid.datasource=my_array_list;
    my_data_grid.CaptionText = " ";
    DataGridTableStyle ts = new DataGridTableStyle();
    ts.MappingName = my_array_list;DataGridTextBoxColumn col;
    //增加姓名列
    col = new DataGridTextBoxColumn();
    col.HeaderText = "姓名";
    col.MappingName = "name";
    col.ReadOnly = true;
    col.Width = 120;
    ts.GridColumnStyles.Add(col);
    //设置样式
    ts.AlternatingBackColor = Color.SkyBlue;
    ts.AllowSorting = false;
    my_data_grid.TableStyles.Add(ts);