Hiển thị ảnh trong xTraGrid column

Hướng dẫn dưới đây giúp bạn muốn hiển thị ảnh trong xTraGrid control.

Để dễ nắm bắt bài hướng dẫn, giả sử ta có bảng dữ Countries gồm 3 cột: ID, Country, Flag

Bước 1> Add xTraGrid view vào form, thiết lập các bound column cho các trường dữ liệu tương ứng

Bước 2> Add thêm một Unbound column vào xTragird, Caption = Image, FieldName = Image, UnBoundType = Object như trong hình sau

Bước 3> Chọn Views > Chọn Event và double click vào CustomUnboundColumnData

Bước 4> Viết code sau vào sự kiện CustomUnboundColumnData như sau

 string ImageDir = @"Images\";
        Hashtable Images = new Hashtable();
        string GetFileName(string quocky)
        {
            if (quocky == null || quocky == string.Empty)
                return string.Empty;
            return quocky + ".png";
        }
        private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
        {
                if (e.Column.FieldName == "Image" && e.IsGetData)
                {
                    GridView view = sender as GridView;
                    string quocky = (string)view.GetRowCellValue(e.RowHandle, "QUOC_KY");
                    string fileName = GetFileName(quocky).ToLower();
                    if (!Images.ContainsKey(fileName))
                    {
                        Image img = null;
                        try
                        {
                            string filePath = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, ImageDir + fileName, false);
                            img = Image.FromFile(filePath);
                        }
                        catch
                        {
                        }
                        Images.Add(fileName, img);
                    }
                    e.Value = Images[fileName];
                }
        }
Hy vọng với hướng dẫn có thể giúp bạn giải quyết được vấn đề hiển thị ảnh trong xTraGrid.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s