webForumDet fria alternativet

AJAX ControlToolkit Animation

2 svar · 615 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 626 inlägg
#1

Hej igen,
vill utveckla dropdown extendern med en ajax animation:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Animation/Animation.aspx

Det jag vill ska hända är att då man klickar på en länk som visas i dropdownextendern, i det här fallet funtion1 (som kommer vara en redigera funktion), så skall animationen ta kraft, och redigera funktionen köras, hur kan det tänkas bli i följande kod?:

                    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");

                    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);
GimboMedlem sedan dec. 20001 626 inlägg
#2

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 :)

GimboMedlem sedan dec. 20001 626 inlägg
#3

hej igen...

tror jag har komit en bit nu, men jag har fastnat i ett felmeddelande, är det ingen som har någon som helst ide på hur man kan lösa detta, för det lär nog vara fler än mig som vill ta del av detta, jag får följande fel:
- An error occured when building filelist: Object reference not set to an instance of an object.
och här är koden:

                    AjaxControlToolkit.AnimationExtender _aeOpen = new AjaxControlToolkit.AnimationExtender();
                    PlaceHolder phAnimation = new PlaceHolder();
                    StringBuilder sbOpen = new StringBuilder();
                    StringBuilder sbScript = new StringBuilder();
                    ImageButton _ibHelp = new ImageButton();

                    
                    sbScript.AppendLine("<script language=\"JavaScript\" type=\"Text/javascript\">");
                    sbScript.AppendLine("   function Cover(bottom, top, ignoreSize) {");
                    sbScript.AppendLine("       var location = Sys.UI.DomElement.getLocation(bottom);");
                    sbScript.AppendLine("       top.style.position ='absolute';");
                    sbScript.AppendLine("       top.style.top = location.y + 'px';");
                    sbScript.AppendLine("       top.style.left = location.x + 'px';");
                    sbScript.AppendLine("       if (!ignoreSize) {");
                    sbScript.AppendLine("           top.style.height = bottom.offsetHeight + 'px';");
                    sbScript.AppendLine("           top.style.width = bottom.offsetWidth + 'px';");
                    sbScript.AppendLine("       }");
                    sbScript.AppendLine("   }");
                    sbScript.AppendLine("</script>");
                    this.Page.ClientScript.RegisterClientScriptBlock(GetType(), "OnClick", sbScript.ToString());

                    _ibHelp.ID = "ibHelp";
                    _ibHelp.OnClientClick = "return false;";
                    _ibHelp.ImageUrl = "/admin/images/buttons/help.png";
                    _ibHelp.ToolTip = "Click For Help";
                    phAnimation.Controls.Add(_ibHelp);

                    sbOpen.AppendLine("<OnClick>");
                    sbOpen.AppendLine("<Sequence>");

                    sbOpen.Append("&lt;ScriptAction Script='Cover($get('");
                    sbOpen.Append(_ibHelp.ClientID);
                    sbOpen.Append("'), $get('flyout");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine("'));' />");

                    sbOpen.Append("&lt;StyleAction AnimationTarget='flyout");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine("' Attribute='display' Value='block' />;");

                    sbOpen.Append("&lt;Parallel AnimationTarget='flyout");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine("' Duration='.3' Fps='25'>");

                    sbOpen.AppendLine("&lt;Move Horizontal='150' Vertical='-50' />");
                    sbOpen.Append("&lt;Resize Width='300' Height='300' />");

                    sbOpen.Append("&lt;ScriptAction Script='Cover($get('flyout");
                    sbOpen.Append(this.ID);
                    sbOpen.Append("'), $get('info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine("'), true);' />");

                    sbOpen.Append("&lt;StyleAction AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" Attribute='display' Value='block'/>");

                    sbOpen.Append("&lt;FadeIn AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" Duration='.2'/>");

                    sbOpen.Append("&lt;StyleAction AnimationTarget='flyout");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine("  Attribute='display' Value='none' />");

                    sbOpen.Append("&lt;StyleAction AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" Attribute='height' Value='auto'/>");

                    sbOpen.AppendLine("&lt;Parallel Duration='.5'>");
                    sbOpen.Append("&lt;Color AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" StartValue='#666666' EndValue='#FF0000' Property='style' PropertyKey='color'/>");
                    sbOpen.Append("&lt;Color AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" StartValue='#666666' EndValue='#FF0000' Property='style' PropertyKey='borderColor'/>");
                    sbOpen.AppendLine("&lt;/Parallel>");

                    sbOpen.AppendLine("&lt;Parallel Duration='.5'>");
                    sbOpen.Append("&lt;Color AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" StartValue='#FF0000' EndValue='#666666' Property='style' PropertyKey='color'/>");
                    sbOpen.Append("&lt;Color AnimationTarget='info");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" StartValue='#FF0000' EndValue='#666666' Property='style' PropertyKey='borderColor'/>");
                    sbOpen.Append("&lt;FadeIn AnimationTarget='btnCloseParent");
                    sbOpen.Append(this.ID);
                    sbOpen.AppendLine(" MaximumOpacity='.9' />");
                    sbOpen.AppendLine("&lt;/Parallel>");

                    sbOpen.AppendLine("</Sequence>");
                    sbOpen.AppendLine("</OnClick>");

                    _aeOpen.ID = "aeOpen";
                    _aeOpen.TargetControlID = "ibHelp";
                    _aeOpen.Animations = sbOpen.ToString();
                    phAnimation.Controls.Add(_aeOpen);
131 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)