webForumDet fria alternativet

AJAXToolKit Dropdown extender

8 svar · 1 175 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 626 inlägg
#1

Hej,

laddade ner AJAXCOntrolToolKit från ajax.asp.net men jag inte få kontrollen dropdown extender att fungera (http://asp.net/AJAX/AjaxControlToolkit/Samples/DropDown/DropDown.aspx):

Jag vill lägga drpdown extendern i en cell i en datagrid,,, dvs alla namn i datagriden skall ha dropdown extendern och så här har jag gjort men får det inte att fungera :@

vet egentligen inte vart någonstans jag ska lägga koden? men har nedastående kod i

void dgr_ItemDataBound(object sender, DataGridItemEventArgs e)

LinkButton lb = new LinkButton();
lb.ID = "link";
lb.Click += new EventHandler(lb_Click);
lb.Text = row["Filename"].ToString();
lb.CommandArgument = row["FilePath"].ToString();

AjaxControlToolkit.DropDownExtender drpExtender = new AjaxControlToolkit.DropDownExtender();
drpExtender.ID = "DDE";
drpExtender.TargetControlID = lb.ID;
drpExtender.DropDownControlID = drpPanel.ID;

drpExtender.Controls.Add(lb);
drpExtender.DropArrowImageUrl = "~/app_themes/blue/images/bullet_arrow_down.png";

e.Item.Cells[1].Controls.Clear();
e.Item.Cells[1].Controls.Add(drpExtender);
GimboMedlem sedan dec. 20001 626 inlägg
#2

någon?

TravoniMedlem sedan okt. 20041 556 inlägg
#3

Men du måste väl lägga in detta

<ajaxToolkit:DropDownExtender runat="server" ID="DDE"
    TargetControlID="TextLabel" 
    DropDownControlID="DropPanel" />

i en itemtemplate.

GimboMedlem sedan dec. 20001 626 inlägg
#4

Jag jobbar i code-behinde...
jag tror felet ligger i scriptmanagern eller för på något konstigt sätt får jag ett javascript fel på sidan som lyder:

'_behaviur' is null or not an object, dvs det känns som att scriptmanagern inte gör det den skall, eller är det jag som stirrat mig blind på scriptmanagern, och att felet kan ligga någon annanstans då man får ett javascripts fel?

ScriptManager  sm;

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);

           sm = ScriptManager.GetCurrent(this.Page);
 
    if (sm == null)
    {
        
        sm = new ScriptManager();
        sm.EnablePartialRendering = true;
 
 Scriptmangern ska komma först
        this.Page.Form.Controls.AddAt(0, sm);
}
}

skulle vara VÄLDIGt tacksam för hjälp

ordellMedlem sedan sep. 200278 inlägg
#5

Hm, har du testat att lägga till kontrollen (lb) till cellen också?

e.Item.Cells[1].Controls.Add(lb);
innan du lägger till extendern...

GimboMedlem sedan dec. 20001 626 inlägg
#6

skit schysst tack för hjälpen!!
fick det att funka :D för er som är intresserade så ser ni koden nedan...
en sak som inte triggas är:
pnl.Attributes["style="] = "display:none; visibility:none;";
pnl.CssClass = "ContextMenuPanel";

får inte den fina bakgrunden i dropdownen med mouseovern, och den skall dyka upp m h a ovanstående kod, men det verkar som att den inte triggas, någon som har någon aning om varför?

koden för dropdown extendern:

AjaxControlToolkit.DropDownExtender hme = new AjaxControlToolkit.DropDownExtender();
                    Panel pnl = new Panel();
                    pnl.Attributes["style="] = "display:none; visibility:none;";
                    pnl.CssClass = "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 = "function 1";

                    LinkButton lb2 = new LinkButton();
                    pnl.Controls.Add(lb2);
                    lb2.Text = "function 2";

                    LinkButton lb3 = new LinkButton();
                    pnl.Controls.Add(lb3);
                    lb3.Text = "function 3";

                    //hme.PopupControlID = pnl.ID;
                    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);
inspiroMedlem sedan sep. 2005673 inlägg
#7

Jag tror du ska skriva så här (otestat):

pnl.Style.Add("display","none")

...och visibility:hidden ska det nog vara, men har du display:none så behöver du ju inte ha med det alls.

GimboMedlem sedan dec. 20001 626 inlägg
#8

Funkade fint med

pnl.Style.Add("display", "none");
pnl.Style.Add("visibility", "hidden");

men hur blir det med classen

pnl.CssClass = "ContextMenuPanel";

? den kommer inte ens med när jag kollar i källkoden?

GimboMedlem sedan dec. 20001 626 inlägg
#9

löste d

pnl.Attributes.Add("class", "ContextMenuPanel");

ska d va

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)