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

Dynamic controls disappear

1 Answer 75 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Marcel
Top achievements
Rank 1
Marcel asked on 22 Jan 2013, 02:56 PM
Hi there,

I have a problem in using the radGrid in combination with user controls.

As you can see in the enclosed image (=Image1.png) I want to show some part detail infomation to the user by clicking the expand button of the grid.
The image shown is populated by a user control which is added to the placeholder in the code behind.

When I click the expand button for another part the image of the previous part disappears (=Image2.png)

I use the following code:
<NestedViewTemplate>
                    <asp:Panel ID="paPart" runat="server" GroupingText="Part info">
                     
                        <table width="100%">
                            <tr>
                                 
                                <!--Empty-->
                                <td width="5%"></td>
                                 
                                <!--Part detail-->
                                <td width="45%" valign="top">
                                    <table>
                                        <tr>
                                            <td>Partnumber:</td>
                                            <td><asp:Label ID="laPartnumber" runat="server"></asp:Label></td>
                                        </tr>
                                        <tr>
                                            <td>Description:</td>
                                            <td><asp:Label ID="laDescription" runat="server"></asp:Label></td>
                                        </tr>
                                        <tr>
                                            <td>Weight:</td>
                                            <td><asp:Label ID="laWeight" runat="server"></asp:Label></td>
                                        </tr>
                                        <tr>
                                            <td>Volume:</td>
                                            <td><asp:Label ID="laVolume" runat="server"></asp:Label></td>
                                        </tr>
                                        <tr>
                                            <td>Package quantity:</td>
                                            <td><asp:Label ID="laPackageQuantity" runat="server"></asp:Label></td>
                                        </tr>
                                        <tr>
                                            <td>Unit of measure:</td>
                                            <td><asp:Label ID="laUnitOfMeasure" runat="server"></asp:Label></td>
                                        </tr>
                                    </table>
                                </td>
                                 
                                <!--Images met Lightbox-->
                                <td align="center" width="50%">
                                    <table width="100%">
                                        <tr>
                                            <td valign="top"><asp:PlaceHolder ID="phPartImage" runat="server"></asp:PlaceHolder></td>
                                            <td>  </td>
                                            <td valign="top"><asp:PlaceHolder ID="phPartImageOther" runat="server"></asp:PlaceHolder></td>
                                        </tr>                                                                                                           
                                    </table>
                                </td>
                            </tr>
                        </table>
                     
                    </asp:Panel>
                </NestedViewTemplate>
 
            </MasterTableView>

protected void grPart_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
        {
            if (e.CommandName == Telerik.Web.UI.RadGrid.ExpandCollapseCommandName)
            {
                Telerik.Web.UI.GridDataItem Item = e.Item as Telerik.Web.UI.GridDataItem;
 
                if (!Item.Expanded)
                {
                    Telerik.Web.UI.GridNestedViewItem NestedItem = (Telerik.Web.UI.GridNestedViewItem)Item.ChildItem;
 
                    //get part
                    NMHG.Data.Part.Part.Part Part = new NMHG.Data.Part.Part.Part();
                    Part.Partnumber = Item.GetDataKeyValue("Partnumber").ToString();
                    Part.GetPart();
 
                    //Partnumber
                    Label laPartnumber = (Label)NestedItem.FindControl("laPartnumber");
                    laPartnumber.Text = Part.Partnumber;
 
                    //Description
                    Label laDescription = (Label)NestedItem.FindControl("laDescription");
                    laDescription.Text = Part.Description;
 
                    //Weight
                    Label laWeight = (Label)NestedItem.FindControl("laWeight");
                    laWeight.Text = Part.Weight.ToString();
 
                    //Volume
                    Label laVolume = (Label)NestedItem.FindControl("laVolume");
                    laVolume.Text = Part.volume.ToString();
 
                    //Package quantity
                    Label laPackageQuantity = (Label)NestedItem.FindControl("laPackageQuantity");
                    laPackageQuantity.Text = Part.Package_Qty.ToString();
 
                    //Unit of measure
                    Label laUnitOfMeasure = (Label)NestedItem.FindControl("laUnitOfMeasure");
                    laUnitOfMeasure.Text = Part.Unit_of_Measure.ToString();
 
                    //Images
 
                    //get files image directory
                    bool PHOTO_FIRST = true;        //1 of meerdere foto's
                    string FILENAME = Part.Partnumber.Replace(" ", "") + "*.jpg";
                    string DIRECTORY = ConfigurationManager.AppSettings.Get("DIR part images");
                    DirectoryInfo DIRINFO = new DirectoryInfo(DIRECTORY);
                    FileInfo[] BESTANDEN = DIRINFO.GetFiles(FILENAME);
                    foreach (FileInfo BESTAND in BESTANDEN)
                    {
                        //creeer usercontrol PartImage
                        Part.User_controls.PartImage PartImage = (Part.User_controls.PartImage)LoadControl("PartImage.ascx");
                        PartImage.FILENAME = Path.GetFileNameWithoutExtension(BESTAND.Name) + "*.jpg";
                        PartImage.DESCRIPTION = Part.Partnumber + " - " + Part.Description;
                        PartImage.THUMBNAIL = false;                                            //Use/show thumbnail
 
                        if (PHOTO_FIRST == true)
                        {
                            PartImage.WIDTH = 200;
                            PartImage.HEIGHT = 200;
                            PartImage.PARTIMAGE_FILL();
 
                            //add user control to placeholder
                            PlaceHolder phPartImage = (PlaceHolder)NestedItem.FindControl("phPartImage");
                            phPartImage.Controls.Add(PartImage);
                        }
                        else
                        {
                            PartImage.WIDTH = 50;
                            PartImage.HEIGHT = 50;
                            PartImage.PARTIMAGE_FILL();
 
                            //add user control to placeholder other
                            PlaceHolder phPartImageOther = (PlaceHolder)NestedItem.FindControl("phPartImageOther");
                            phPartImageOther.Controls.Add(PartImage);
 
                            //set empty row
                            Label label = new Label();
                            label.Height = Unit.Pixel(20);
                            phPartImageOther.Controls.Add(label);
                        }
 
                        PHOTO_FIRST = false;
                    }
                }
            }
        }


Any idea?

Many thanx!

Marcel

1 Answer, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 23 Jan 2013, 04:14 AM
Hello,

Can you please check below link ?

This link will help you.

http://www.telerik.com/community/forums/aspnet-ajax/grid/parent-grid-rebind.aspx

Let me know if any concern.

Note : I want to say that please try to set image in prerender event in place of itemcommnad event.

Thanks,
Jayesh Goyani
Tags
Grid
Asked by
Marcel
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or