This is a migrated thread and some comments may be shown as answers.

Showing sample images insted of text in combobox

1 Answer 100 Views
SkinManager
This is a migrated thread and some comments may be shown as answers.
Barbaros Saglamtimur
Top achievements
Rank 1
Barbaros Saglamtimur asked on 07 Jul 2009, 02:24 PM
Hi,

Actually I did it but wonder if there is another way. Here is my code. Any improvements are appreciated.

        protected void RadSkinManager1_PreRender(object sender, EventArgs e) 
        { 
            DataTable table = new DataTable(); 
            DataRow row; 
 
            table.Columns.Add("ImgUrl"); 
            table.Columns.Add("val"); 
            table.Columns.Add("txt"); 
 
            row = table.NewRow(); 
            row.ItemArray = new string[] { "images/default.gif""Default""Default" }; 
            table.Rows.Add(row); 
 
            row = table.NewRow(); 
            row.ItemArray = new string[] { "images/black.gif""Black""Black" }; 
            table.Rows.Add(row); 
 
            row = table.NewRow(); 
            row.ItemArray = new string[] { "images/forest.gif""Forest""Forest" }; 
            table.Rows.Add(row); 
 
            RadComboBox skinChooser = RadSkinManager1.FindControl("SkinChooser"as RadComboBox; 
 
            skinChooser.DataSource = table; 
            skinChooser.ItemTemplate = new IMGTemplate("ImgUrl"); 
            skinChooser.DataTextField = "txt"
            skinChooser.DataValueField = "val"
            skinChooser.Width = 240; 
            skinChooser.Height = 202; 
            skinChooser.DataBind(); 
             
            skinChooser.SelectedValue = RadSkinManager1.Skin; 
 
         } 

class IMGTemplate : ITemplate 
    { 
     string pathColumn; 
 
     public IMGTemplate(string imgPathColumn) 
        { 
            pathColumn = imgPathColumn; 
        } 
 
        public void InstantiateIn(Control c) 
        { 
            Image imgt = new Image(); 
            imgt.DataBinding += new EventHandler(imgDataBinding); 
            c.Controls.Add(imgt); 
        } 
 
        void imgDataBinding(object sender, EventArgs e) 
        { 
            Image img_ = (Image)sender; 
            RadComboBoxItem item = (RadComboBoxItem)img_.BindingContainer; 
            DataRowView drv = ((DataRowView)item.DataItem); 
            img_.ImageUrl = drv[pathColumn].ToString(); 
        } 
    } 

1 Answer, 1 is accepted

Sort by
0
Sebastian
Telerik team
answered on 07 Jul 2009, 02:33 PM
Hello barbaros,

Thank you for posting your solution in our public RadSkinManager forum - thus you can help other people who look for a similar implementation. I updated your Telerik points for the involvement.

Best,
Sebastian
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
SkinManager
Asked by
Barbaros Saglamtimur
Top achievements
Rank 1
Answers by
Sebastian
Telerik team
Share this question
or