Avatar billede ihtezaz Praktikant
08. februar 2007 - 13:13 Der er 9 kommentarer og
2 løsninger

Linkbutton og textbox i en repeater itemtemplate(clientside sp)

Hej
For hver post i min datasource, har jeg en linkbutton og en textbox i min repeaters itemtemplate. som default er textboxene visible = false, det jeg ønsker at opnå, er at når klikkes på linkbutton, så skal textboxen ud fra den link der blev klikket på blive visible = true. Hvordan kan jeg lige opnå dette ? på forhånd tak.
Avatar billede dr_chaos Nybegynder
08. februar 2007 - 13:20 #1
Du skal bruge itemcommand på repeateren og bruge noget i denne stil:
((TextBox)e.Item.FindControl("dintextbox")).Visible=true;
Avatar billede ihtezaz Praktikant
08. februar 2007 - 13:26 #2
Jep, men det skal først blive synlig når nogen har trykket linkbutton. Jeg skal
først vide hvilken knap der er trykket på og derefter gør den tilhørende textbox synlig
Avatar billede dr_chaos Nybegynder
08. februar 2007 - 14:07 #3
har du flere knapper i hver repeater row ?
Hvis det er tilfældet kan du sætte commandname på knapperne og tjekke
e.CommandName for om det den rigtige knap der er trykket på.

Eller er det mere index på den row som kommandoen kommer fra ?
Avatar billede ihtezaz Praktikant
08. februar 2007 - 16:35 #4
Ved ikke hvorfor, men både min eventhandler til linkbutton og itemcommand bliver ikke affyret. Kun ItemDataBound eventen affyret.
Avatar billede dr_chaos Nybegynder
08. februar 2007 - 16:46 #5
prøv at fjerne den ene af dem.
Avatar billede ihtezaz Praktikant
08. februar 2007 - 17:00 #6
Det hjælper ikke, jeg fjernede linkbuttons click event. For at får itemcommand igang, men lykkedes ikke.
Avatar billede snepnet Nybegynder
08. februar 2007 - 20:14 #7
Eksempel på Repeater her:

<asp:Repeater ID="uxComments" runat="server" OnItemCommand="uxComments_ItemCommand">
    <ItemTemplate>
        -------------------------------------<br />
        <asp:Label ID="uxName" runat="server" Font-Bold="true" Text='<%# Eval("Name") %>'></asp:Label><br />
        -------------------------------------<br />
        <asp:Label ID="uxComment" runat="server" Text='<%# Eval("Text") %>'></asp:Label><br />
        <asp:Button id="btn" runat="server" CommandName="DoStuff" CommandArgument="blah" /><br />
    </ItemTemplate>
</asp:Repeater>   

Læg mærke til denne:
OnItemCommand="uxComments_ItemCommand"

Og selve handleren:
protected void uxComments_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    Response.Write(e.CommandName);
    if(e.CommandName == "DoStuff")
    {
        Label l = e.Item.FindControl("uxComment") as Label;
        l.Visible = false;
    }       
}

Du kan yderligere spørge på e.CommandArgument.

Det var bare et eksempel på det chaos skrev om... Bare med en label istedet for en textbox.

Mvh
Avatar billede ihtezaz Praktikant
11. februar 2007 - 22:54 #8
Takker begge to jeg har valgt at gå videre med en mere clientside baseret løsning. Da denne var for kostbar. Men point skal i have for jeres tid. smid svar begge.
Avatar billede dr_chaos Nybegynder
12. februar 2007 - 14:38 #9
svar :)
Avatar billede snepnet Nybegynder
14. februar 2007 - 00:34 #10
Og et her :o)
.... Hvad mener du med "for kostbar"?
Mvh
Avatar billede ihtezaz Praktikant
14. februar 2007 - 22:22 #11
Det er fordi, at jeg nu istedet bruger en div med iFrame inde i, som har en aspx side som src og via querystring sender jeg id med til aspx siden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester