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