nu har jag verkligen fastnat, har skrivit om den till följande:
LinkButton lb = new LinkButton();
lb.Click += new EventHandler(lb_Click);
lb.Text = row["Filename"].ToString();
lb.CommandArgument = row["FilePath"].ToString();
AjaxControlToolkit.DropDownExtender hme = new AjaxControlToolkit.DropDownExtender();
Panel pnl = new Panel();
pnl.Style.Add("display", "none");
pnl.Style.Add("visibility", "hidden");
pnl.Attributes.Add("class", "ContextMenuPanel");
e.Item.ID = "dgvRow_" + e.Item.ItemIndex.ToString();
LinkButton lb1 = new LinkButton();
pnl.ID = "pnl" + e.Item.ItemIndex.ToString();
pnl.Controls.Add(lb1);
lb1.Text = "function1";
lb1.Attributes.Add("class", "ContextMenuItem");
AjaxControlToolkit.AnimationExtender Anim = new AjaxControlToolkit.AnimationExtender();
Anim.TargetControlID = e.Item.ID;
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script language=\"JavaScript\" type=\"text/javascript\">\n");
sbScript.Append("<!--\n");
sbScript.Append("function Cover(bottom, top, ignoreSize)\n");
sbScript.Append("{\n");
sbScript.Append("var location = Sys.UI.DomElement.getLocation(bottom);\n");
sbScript.Append("top.style.position = 'absolute';\n");
sbScript.Append("top.style.top = location.y + 'px';");
sbScript.Append("top.style.left = location.x + 'px';");
sbScript.Append("if (!ignoreSize) {\n");
sbScript.Append("top.style.height = bottom.offsetHeight + 'px';\n");
sbScript.Append("top.style.width = bottom.offsetWidth + 'px';\n");
sbScript.Append("}\n");
sbScript.Append("}\n");
sbScript.Append("// -->\n");
sbScript.Append("</script>\n");
Anim.Animations = "<OnClick><Sequence><EnableAction Enabled=\"false\" /><ScriptAction Script=\"Cover($get('ctl00_SampleContent_lb1'), $get('flyout'));\" /><StyleAction AnimationTarget=\"flyout\" Attribute=\"display\" Value=\"block\"/> <Parallel AnimationTarget=\"flyout\" Duration=\".3\" Fps=\"25\"><Move Horizontal=\"150\" Vertical=\"-50\" /><Resize Height=\"260\" Width=\"280\" /><Color AnimationTarget=\"flyout\" PropertyKey=\"backgroundColor\" StartValue=\"#AAAAAA\" EndValue=\"#FFFFFF\" /></Parallel> <ScriptAction Script=\"Cover($get('flyout'), $get('info'), true);\" /><StyleAction AnimationTarget=\"info\" Attribute=\"display\" Value=\"block\"/><FadeIn AnimationTarget=\"info\" Duration=\".2\"/><Parallel AnimationTarget=\"info\" Duration=\".5\"><Color PropertyKey=\"color\" StartValue=\"#666666\" EndValue=\"#FF0000\" /> <Color PropertyKey=\"borderColor\" StartValue=\"#666666\" EndValue=\"#FF0000\" /></Parallel><Parallel AnimationTarget=\"info\" Duration=\".5\"><Color PropertyKey=\"color\" StartValue=\"#FF0000\" EndValue=\"#666666\" /><Color PropertyKey=\"borderColor\" StartValue=\"#FF0000\" EndValue=\"#666666\" /><FadeIn AnimationTarget=\"btnCloseParent\" MaximumOpacity=\".9\" /></Parallel></Sequence></OnClick>";
lb1.Controls.Add(Anim);
LinkButton lb2 = new LinkButton();
pnl.Controls.Add(lb2);
lb2.Text = "function2";
lb2.Attributes.Add("class", "ContextMenuItem");
LinkButton lb3 = new LinkButton();
pnl.Controls.Add(lb3);
lb3.Text = "function3";
lb3.Attributes.Add("class", "ContextMenuItem");
hme.DropDownControlID = pnl.ID;
hme.TargetControlID = e.Item.ID;
e.Item.Cells[1].Controls.Clear();
e.Item.Cells[1].Controls.Add(lb);
e.Item.Cells[1].Controls.Add(hme);
e.Item.Cells[1].Controls.Add(pnl);
problemet nu är.
1. Texten "Function1" har försvunnit ur dropdownen men det går att klicka på länken.
2. Då jag klickar på länken så aktiveras inte javascriptet vid onclick, utan datagriden blir till en collapsebal panel? så vet ni hur man skulle kunna aktivera javascriptet vid onclick så att inte animationen sker i datagriden utan att den popar up i en popup?
skulle vara riktigt tacksam för hjälp, åtminstone en spark för att komma ut ur lådan :)