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

Any way to set ImageUrl while binding data?

4 Answers 162 Views
PanelBar
This is a migrated thread and some comments may be shown as answers.
Wei
Top achievements
Rank 1
Wei asked on 20 Nov 2008, 10:23 PM
I am new to RadPanelBar.  I want to dynamically bind not just menu text / structure but also images. Is there any way to do that?

Here is my test code modified from sample:
    protected void Page_Load(object sender, EventArgs e)  
        {  
            if(!this.IsPostBack)  
            {  
                uxLFMenuBarML.DataTextField = "Text";  
                uxLFMenuBarML.DataFieldID = "ID";  
                uxLFMenuBarML.DataFieldParentID = "ParentID";  
                uxLFMenuBarML.DataSource = GenerateSiteData();  
                uxLFMenuBarML.DataBind();  
 
            }  
 
        }  
 
    private ArrayList GenerateSiteData()  
        {  
            ArrayList siteData = new ArrayList();  
            siteData.Add(new LFMenuBarDataItem(1, null"All Sites","~/images/1.jpg"));  
            siteData.Add(new LFMenuBarDataItem(2, 1, "Search Engines""~/images/2.jpg"));  
            siteData.Add(new LFMenuBarDataItem(3, 1, "News Sites""~/images/3.jpg"));  
            siteData.Add(new LFMenuBarDataItem(4, 2, "Yahoo""~/images/4.jpg"));  
            siteData.Add(new LFMenuBarDataItem(5, 2, "MSN""~/images/5.jpg"));  
            siteData.Add(new LFMenuBarDataItem(6, 2, "Google""~/images/6.jpg"));  
            siteData.Add(new LFMenuBarDataItem(7, 3, "CNN""~/images/7.jpg"));  
            siteData.Add(new LFMenuBarDataItem(8, 3, "BBC""~/images/8.jpg"));  
            siteData.Add(new LFMenuBarDataItem(9, 3, "FOX""~/images/9.jpg"));  
            return siteData;  
        }  
 
 
 
 
    public class LFMenuBarDataItem  
    {  
        private string _text;  
        private int _id;  
        private int? _parentId;  
        private string _imageUrl;  
        public string Text  
        {  
            get { return _text; }  
            set { _text = value; }  
        }  
        public int ID  
        {  
            get { return _id; }  
            set { _id = value; }  
        }  
        public int? ParentID  
        {  
            get { return _parentId; }  
            set { _parentId = value; }  
        }  
        public string ImageUrl  
        {  
            get { return _imageUrl; }  
            set { _imageUrl = value; }  
        }  
        public LFMenuBarDataItem(int id, int? parentId, string text, string imageUrl)  
        {  
            _id = id;  
            _parentId = parentId;  
            _text = text;  
            _imageUrl = imageUrl;  
        }  
    } 

4 Answers, 1 is accepted

Sort by
0
Accepted
Brian
Top achievements
Rank 1
answered on 20 Nov 2008, 11:59 PM
You have to implement the ItemDataBound event in the RadPanelBar.  Then use the e.Item argument to get the PanelItem being bound, and the e.Item.DataItem argument to get the arraylist item to bind to.  Then you can set other properties of the PanelItem.  See Example....

< *.cs >
protected void RadPanelBar1_ItemDataBound(object sender, RadPanelEventArgs e)
{
     LFMenuBarDataItem item = (LFMenuBarDataItem)e.Item.DataItem;
     e.Item.ImageUrl = item.ImageUrl
}

<*.aspx>

<telerik:RadPanelBar ID="RadPanelBar1" runat="server" OnItemDataBound="RadPanelBar1_ItemDataBound"></telerik:RadPanelBar>
0
Wei
Top achievements
Rank 1
answered on 21 Nov 2008, 01:59 PM
Problem solved. Thanks Brian!
0
Abdul Kadar
Top achievements
Rank 1
answered on 08 Jan 2010, 12:41 PM
Hi
I need to set the image for the panelbar items at runtime .how can i do this ? I tried the code . but it not works to me.Pls review my code and let me know how to resolve this problem.I need to set the imageurl from the sqldatasource imageurl field

 

<telerik:RadPanelBar ID="RadPanelBar1" runat="server"
DataFieldID="MENUCODE"
DataFieldParentID="PARENTID"
DataSourceID="SqlDataSource1"

 

 

DataTextField="MENUDESCRIPTION"
DataValueField="MENUDESCRIPTION" 
ExpandMode="FullExpandedItem"
DataNavigateUrlField="NAVIGATEURL">

 

 

</telerik:RadPanelBar>

 

asp

 

:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TrackConnectionString %>"

 

 

 

 

 

SelectCommand="SELECT MENUCODE, MENUDESCRIPTION, PARENTID, COMPANYID, NAVIGATEURL FROM MENUTABLE"

 

 

 

 

 

 

</asp:SqlDataSource>

 

0
Simon
Telerik team
answered on 10 Jan 2010, 03:36 PM
Hi Abdul Kadar,

Please see Brian's post earlier in the thread for the solution. 

Sincerely yours,
Simon
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
PanelBar
Asked by
Wei
Top achievements
Rank 1
Answers by
Brian
Top achievements
Rank 1
Wei
Top achievements
Rank 1
Abdul Kadar
Top achievements
Rank 1
Simon
Telerik team
Share this question
or