October 23rd, 2006 10:21 AM
#1
Issue with UpdatePanel and ProgressPanel nested in a composite control
Hello to all the smart people,
I'm trying to create a composite control which include nested controls from the great Ajax Dev.
I overcame a lot of issues and can be helpful in some but my latest problem doesn't seem to disappeared.
I can't trigger the ITemplate that i declared (maybe improperly?) to show first a Gif on the progress and afterwords the calculated information from the database.
here are the templates:
the code is as followed:
[DefaultProperty("Text")]
[ToolboxData("<{0}:SingleRecControl runat=server>")]
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class SingleRecControl : CompositeControl
{
private ScriptManager sm = new ScriptManager();
UpdateProgress progBar = new UpdateProgress();
UpdatePanel ratePanel = new UpdatePanel();
ControlValueTrigger trig = new ControlValueTrigger();
public Label ItemName = new Label();
private Style[] objStyle = new Style[3];
protected override void CreateChildControls()
{
base.CreateChildControls();
Controls.Clear();
sm.EnablePartialRendering = false;
sm.EnableViewState = true;
sm.AppRelativeTemplateSourceDirectory = "~/Default.aspx";
sm.ID = "cc2";
sm.EnablePartialRendering = true;
btn.Visible = false;
btn.CommandName = "NEXT";
btn.ID = "Test";
btn.UseSubmitBehavior = false;
btn.Text = "Test";
objStyle[0] = new Style();
ItemName = new Label();
ItemName.BorderStyle = objStyle[0].BorderStyle;
ItemName.BorderWidth = objStyle[0].BorderWidth;
ItemName.BorderColor = objStyle[0].BorderColor;
ItemName.Width = objStyle[0].Width;
ItemName.Height = objStyle[0].Height;
ItemName.ID = "lblCheck";
ItemName.Text = "bl";
ItemName.Visible = true;
this.Controls.Add(ItemName);
progBar.ProgressTemplate = new BarGif("blablablablablabla");
progBar.ID = "GifBar";
ratePanel.ContentTemplate = new RemTemp();
ratePanel.ID = "RatePanel";
trig.ControlID = this.ID + "_" + ItemName.ID;
trig.PropertyName = "Text";
this.ratePanel.Triggers.Add(trig);
this.Controls.Add(sm);
this.Controls.Add(progBar);
this.Controls.Add(ratePanel);
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
this.Controls.Clear();
sm.RenderControl(writer);
progBar.RenderControl(writer);
ratePanel.RenderControl(writer);
ItemName.RenderControl(writer);
}
public class BarGif : TemplateControl, ITemplate
{
private string _barPic;
public BarGif(string template)
{
this._barPic = template;
}
public void InstantiateIn(Control container)
{
LiteralControl lc = new LiteralControl("<img src=&quat;"+this._barPic+"&quat;/>");
container.Controls.Add(lc);
}}
public class RemTemp : SingleRecControl, ITemplate
{
public event System.EventHandler ProssFinished;
private SophiaClass.DemoDbAcc dbAcc=new DemoDbAcc();
private DataTable itemRateTable=new DataTable();
public string userNam = "31";
public RemTemp()
{
RecomTableBuilder();
}
protected void RecomTableBuilder()
{
dbAcc = new DemoDbAcc();
itemRateTable = dbAcc.GetRateTable(int.Parse(userNam));
if (!this.DesignMode) Thread.Sleep(4000);
ItemName.Text = recItem.ItemName;
ItemDesc.Text = recItem.ItemDescript;
ItemPhoto.ImageUrl = recItem.ItemPhotoPath;
}
private Items MakeArrRec(DataTable table, int index)
{
recItem = new Items();
recItem.ItemID = table.Rows[index]["id"].ToString();
recItem.ItemName = table.Rows[index]["itemname"].ToString();
recItem.ItemDescript = table.Rows[index]["itemDesc"].ToString();
recItem.ItemPhotoPath = table.Rows[index]["itemPhotoPath"].ToString();
return recItem;
}
}}
can someone please help me?
please advise.......
i feel so lucky to have someone to share my troubles
Lior
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Click Here to Expand Forum to Full Width
Bookmarks