Windows下的DataGrid,想用图标显示在其中的一列中,也就是将图标加载到这列的不同行上,请问如何实现这样的功能呢?是否需要重写列样式?如何重写呢?请大家帮忙了,最好能够给出关键部分的程序语句,急!万分感谢。

解决方案 »

  1.   

    摸板列中使用Image控件
    改变它的URL
      

  2.   

    win下的好像不行吧,我也找了很久。
    好像framework2.0支持了。
      

  3.   

    try
    http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp
      

  4.   

    DataGrid的DataGridCell除了在被选中时,可以显示出DataGridCell中的控件,
    而且只支持两种控件:TextBox和CheckBox,其他时候控件都被隐藏了,只显示文本,
    也就是说,只有在某个DataGridCell被选中时,里面的图片才能显示出来,显示方法如下:
    dataGrid.TableStyles.Clear();
    DataGridTableStyle dts=new DataGridTableStyle();
    dts.MappingName="DataTableName";//与绑给DataGrid的数据源DataTable的名称对应
    dataGrid.TableStyles.Add(dts);
    DataGridTextBoxColumn dtbc=new DataGridTextBoxColumn();
    dtbc.MappingName="Column1Name";//与绑给DataGrid的数据源中的某列对应
    dtbc.HeaderText="Column1Name";
    dtbc.ReadOnly=true;
    PictureBox pb=new PictureBox();
    pb.Image=Image.FromFile(@"E:\1.ico");
    pb.Dock=DockStyle.Fill;
    dtbc.TextBox.Controls.Add(pb);
    dts.GridColumnStyles.Add(dtbc);
    //可以通过循环添加需要显示的列
    这样,当显示Column1Name的某个DataGridCell被选中时,DataGrid自动显示Cell中的TextBox,由于该TextBox中包含一个图片框,就能显示图片了如何在任何时候都能显示图片,下回分解
      

  5.   

    private void dg_Cust_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    DataGrid dGrid=(DataGrid)sender;
    if(e.Item.ItemType.Equals(ListItemType.Item))
    { {
       TableCell tablecell=e.Item.Cells[i];
       Image image=new Image();
       image.ImageUrl="圖片.jpg";
       tablecell.Controls.Add(linkbutton);
       tablecell.Controls.Add(label);
    }
    }
    }
    }