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:
Any idea?
Many thanx!
Marcel
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