Avatar billede simsen Mester
19. februar 2011 - 17:58 Der er 1 kommentar og
1 løsning

Hjælp til at forstå PopupControlExtender

Hej,

Først mit mål: Når jeg klikker på en knap på siden, skal der poppe et felt op, hvor der listes nogle billeder (smileyes). Når jeg klikker på en smiley, skal navnet på smileyen tilføjes en tekstbox på siden.

I første omgang forsøger jeg kun at lade popup'en fremkommer når jeg klikker på selve tekstbox'en, idet jeg ikke ved, hvordan jeg får sat navnet på billedet ind i tekstboxen, ved at tilføje den til en knap istedet.

Min aspx kode:

<table cellpadding="0" width="100%" border="0">
                                        <tr>
                                            <td style="text-align: right">
                                                <asp:Label ID="lblMessage" runat="server" Text="<%$ Resources:Resource, Message %>"></asp:Label> :&nbsp
                                            </td>
                                            <td style="text-align: left; width: 510px">
                                                <asp:TextBox Id="txtMessage" runat="server" onfocus="this.value = this.value;" MaxLength="250" Width="500px" />   
                                            </td>
                                            <td style="vertical-align: top">
                                                <asp:Button Id="btnSend" CssClass="button" runat="server" Text="<%$ Resources:Resource, Send %>" OnClientClick="SetScrollPosition()" OnClick="BtnSend_Click" />                                               
                                            </td>
                                            <td style="width: 200px">
                                                <asp:ImageButton ID="ibtnSmileys" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/Images/Smiley_41_20_A.gif" />
                                                <asp:Panel ID="panSmileys" runat="server" CssClass="chatSmileyPanel">
                                                    <asp:UpdatePanel ID="upanSmileys" runat="server">
                                                        <ContentTemplate>
                                                            <asp:DataList ID="dlstSmileys" runat="server" RepeatColumns="7" RepeatDirection="Horizontal" Width="100%" CellPadding="2" CellSpacing="2" OnItemCommand="dlstSmileys_ItemCommand">
                                                                <ItemTemplate>                                                                   
                                                                    <asp:ImageButton ID="ibtnSmiley" runat="server" ImageUrl='<%# Eval("Name", "../Images/Smileys/{0}") %>' CommandName="InsertSmiley" CommandArgument='<%# Eval("Name", "{0}").ToString() %>' />
                                                                </ItemTemplate>
                                                            </asp:DataList>
                                                        </ContentTemplate>
                                                    </asp:UpdatePanel>
                                                </asp:Panel>
                                                <ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" runat="server"
                                                  TargetControlID="txtMessage"
                                                  PopupControlID="panSmileys"
                                                  Position="Bottom"
                                                  CommitProperty="value"
                                                  OffsetX="3" OffsetY="3">
                                                </ajaxToolkit:PopupControlExtender>                                               
                                            </td>
                                        </tr>
                                    </table>

Min datalists ItemCommand:

protected void dlstSmileys_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "InsertSmiley")
        {
            string smileyName = Convert.ToString(e.CommandArgument);
            txtMessage.Text += smileyName;
        }
    }

Når jeg klikker på et billede i popupcontrolextenderen går den ikke ind i datalistens ItemCommand og jeg forstår slet og ret ikke hvorfor?

Hvis jeg i stedet for datalisten bruger en RadiobuttonList med ListItems og klikke på en af disse kommer jeg ind i SelectedIndexChanged på RadioButtonList'en. Så jeg ved at RadiobuttonList fyrer kommandoen af.....men forstår ikke hvorfor den ikke gør i datalisten?

Har du en anden idé til, hvordan mit mål nås, så sig endelig til. Mit projekt afhænger ikke af, at det skal være en PopupControlExtender jeg skal bruge.

Mvh,
simsen :-)
Avatar billede janus_007 Nybegynder
20. februar 2011 - 12:10 #1
Hej Simsen
Jeg ville droppe alt det der Microsoft Extender halløj og så lave det i jQuery, det er langt nemmere og mere fleksibelt.

Søg evt. på jQuery tooltip hvis du skal have noget stylet flot, smid dine smileys serverside direkte ind i tooltippet. Så sætter du en eventlistener på clientside på dine smileys og overfører navnet til en tekstbox.

Jeg garanterer dig... det er meget nemmere :)
Avatar billede simsen Mester
01. april 2011 - 00:25 #2
lukker den her - kom aldrig videre med den :-(
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
Kurser inden for grundlæggende programmering

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