Hello guys,
I am new to atlas and ajax. Any help would be greatly appreciated.
I dynamically create accordion panes, panel and modal popup extenders.
First I tried to declare all the panels that will be targets to modalpopuextenders, and modal popupextenders outside of accordion pane.
The linkbuttons that call modalpopup are inside accordion panes. I am getting errors like link button with the following name could not be found.
I also tried putting the panels and modalpopup extenders into the panes but that caused the accordion not to display properly. What should I do?
Thanks alot
Here is my code:
the aspx page looks like this:<formid="form1"runat="server"><asp:ScriptManagerrunat="server"ID="scriptManager"EnablePartialRendering="true"><Services><asp:ServiceReferencepath="assetService.asmx"/></Services></asp:ScriptManager><div><TABLECELLPADDING="0"CELLSPACING="0"BORDER="0"><TRALIGN="LEFT"VALIGN="TOP"><TDALIGN="LEFT"VALIGN="TOP"><asp:UpdatePanelrunat=ServerID="assetListPanel"UpdateMode="Always"><ContentTemplate><ajaxToolkit:AccordionID="newAccordion"runat="server"EnableViewState=trueSelectedIndex="0"HeaderCssClass="accordionHeader"ContentCssClass="accordionContent"FadeTransitions="false"FramesPerSecond="60"TransitionDuration="75"AutoSize="Limit"RequireOpenedPane="false"SuppressHeaderPostbacks="true"Width="250"Height="525">
</ajaxToolkit:Accordion>
codebehind looks like this:
void Page_Load(Object sender,EventArgs E){
testLbl.Text = DateTime.Now.ToString();// Load connections and stringsconnectionString = ConfigurationManager.AppSettings["db_connection_string"];pSpon =newProcSponsorship(connectionString);dtCategories = pSpon.GetAssetCategories();
LoadNewAssetPane();
}
/* void Page_Load(Object sender, EventArgs E){
}*/
void LoadNewAssetPane(){
AccordionPane ap;foreach (DataRow dRowin dtCategories.Rows)
{
int curCat = (int)dRow["AssetItemCategoryId"];dtAssetItems = pSpon.GetAssetItems(curCat);
string CatDescr = dtAssetItems.Rows[0]["CatDescr"].ToString();string CatDescrLong = dtAssetItems.Rows[0]["CatLongDescr"].ToString(); ap = newAccordionPane();ap.ID =
"AssetItemCat_"+ curCat; ap.HeaderContainer.Controls.Add(newLiteralControl("<span onmouseover=\"return escape('"+ CatDescrLong +"')\"><a class=accordionLink>"+ CatDescr +"</a></span>"));for (int i = 0; i < dtAssetItems.Rows.Count; i++){
//ap.ContentContainer.Controls.Add(new LiteralControl("<span onmouseover=\"return escape('" + dtAssetItems.Rows[i]["LongDescr"] + "')\"><a href=http://forums.asp.net/AddPost.aspx?ForumID=15# class=accordionLink>" + dtAssetItems.Rows[i]["DisplayDescr"]+ "</a></span><BR>"));LinkButton lb = newLinkButton();
lb.ID =
"AssetItemId_"+ dtAssetItems.Rows[i]["AssetItemId"]; lb.Text = (dtAssetItems.Rows[i]["DisplayDescr"]).ToString() +"<br/>";ap.ContentContainer.Controls.Add(lb);
Panel np = newPanel();np.ID =
"AssetItemId_Panel_"+ dtAssetItems.Rows[i]["AssetItemId"]; np.Style.Value = "display: none;";//np.Style = "display: none";np.CssClass = "add_task_panel";np.Controls.Add(
newLiteralControl("<div><h2><strong>Add new Asset</strong></h2></div>")); np.Controls.Add(newLiteralControl("<div style=\"margin:10px;line-height:150%;\">"));np.Controls.Add(
newLiteralControl("Asset title :")); np.Controls.Add(newLiteralControl("<div style=\"margin:8px 0px;\">"));TextBox tb1 = newTextBox();
tb1.ID =
"AssetItemId_Panel_TextBox"+ dtAssetItems.Rows[i]["AssetItemId"]; tb1.TextMode = TextBoxMode.MultiLine;tb1.Rows = 2;
np.Controls.Add(tb1);
np.Controls.Add(newLiteralControl("<div>"));Button bt1 = newButton(); bt1.ID = "AssetItemId_Panel_ButtonSave"+ dtAssetItems.Rows[i]["AssetItemId"];bt1.Text ="Save";np.Controls.Add(bt1);
Button bt2 = newButton(); bt2.ID = "AssetItemId_Panel_ButtonCancel"+ dtAssetItems.Rows[i]["AssetItemId"];bt2.Text ="Cancel";np.Controls.Add(bt2);
np.Controls.Add(newLiteralControl("<div>"));ModalPopupExtender modal =newModalPopupExtender(); modal.ID = "AssetItemId_Modal"+ dtAssetItems.Rows[i]["AssetItemId"];
modal.OnOkScript =
"AddAsset();"; modal.CancelControlID = "AssetItemId_Panel_ButtonCancel"+ dtAssetItems.Rows[i]["AssetItemId"];modal.OkControlID =
"AssetItemId_Panel_ButtonSave"+ dtAssetItems.Rows[i]["AssetItemId"]; modal.BackgroundCssClass = "modal_bg";string s = "AssetItemId_"+ dtAssetItems.Rows[i]["AssetItemId"];//LinkButton b = (LinkButton)(ap.ContentContainer.Controls[2 + i]);
modal.TargetControlID = "AssetItemId_"+ dtAssetItems.Rows[i]["AssetItemId"];modal.PopupControlID ="AssetItemId_Panel_"+ dtAssetItems.Rows[i]["AssetItemId"];
//ap.ContentContainer.Controls.Add(modal);
assetListPanel.ContentTemplateContainer.Controls.Add(np);
//ap.ContentContainer.Controls.Add(modal);
assetListPanel.ContentTemplateContainer.Controls.Add(modal);
}
newAccordion.Panes.Add(ap);
}
}