Hi,
Actually I did it but wonder if there is another way. Here is my code. Any improvements are appreciated.
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(); |
| } |
| } |