Perdre Du Bouton.Cliquez sur les événements après la première partie de la publication dans UpdatePanel
J'ai une Page qui a une seule instance d'un UserControl qui lui-même a un seul UpdatePanel. À l'intérieur de l'UpdatePanel plusieurs contrôles de Bouton. L'événement Click pour ces contrôles sont installés dans le code-behind, dans l'événement Init de l'objet UserControl.
- Je obtenir de l'événement Click pour le premier bouton, je push, à chaque fois, pas de problème. Après, je ne reçois que des événements de Clic pour un bouton (SearchButton) - le reste est ignoré. J'ai inclus le code pour le contrôle ci-dessous - pour des raisons de concision, j'ai exclu le gestionnaire d'événements click méthodes, mais ils sont tous de la norme "void Button_Click(object sender, EventArgs e)" de la variété. Des idées?
<asp:UpdatePanel ID="PickerUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="Container" runat="server">
<div>
<asp:TextBox ID="PickerResults" runat="server" style="margin-right: 3px;" SkinID="Plain" />
<asp:Image
ID="LaunchPopup" runat="server" ImageUrl="~/images/icons/user_manage.png"
ImageAlign="Top" BorderColor="#294254" BorderStyle="Dotted" BorderWidth="1px"
Height="20px" Width="20px" style="cursor: pointer;" />
</div>
<asp:Panel ID="PickerPanel" runat="server" DefaultButton="OKButton" CssClass="popupDialog" style="height: 227px; width: 400px; padding: 5px; display: none;">
<asp:Panel runat="server" id="ContactPickerSearchParams" style="margin-bottom: 3px;" DefaultButton="SearchButton">
Search: <asp:TextBox ID="SearchTerms" runat="server" style="margin-right: 3px;" Width="266px" SkinID="Plain" />
<asp:Button ID="SearchButton" runat="server" Text="Go" Width="60px" SkinID="Plain" />
</asp:Panel>
<asp:ListBox ID="SearchResults" runat="server" Height="150px" Width="100%" SelectionMode="Multiple" style="margin-bottom: 3px;" />
<asp:Button ID="AddButton" runat="server" Text="Add >>" style="margin-right: 3px;" Width="60px" SkinID="Plain" />
<asp:TextBox ID="ChosenPeople" runat="server" Width="325px" SkinID="Plain" />
<div style="float: left;">
<asp:Button ID="AddNewContact" runat="server" SkinID="Plain" Width="150px" Text="New Contact" />
</div>
<div style="text-align: right;">
<asp:Button ID="OKButton" runat="server" Text="Ok" SkinID="Plain" Width="100px" />
</div>
<input id="SelectedContacts" runat="server" visible="false" />
</asp:Panel>
<ajax:PopupControlExtender ID="PickerPopEx" runat="server" PopupControlID="PickerPanel" TargetControlID="LaunchPopup" Position="Bottom" />
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="AddButton" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="SearchButton" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="AddNewContact" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
public partial class ContactPicker : System.Web.UI.UserControl
{
protected void Page_Init(object sender, EventArgs e)
{
SearchButton.Click += new EventHandler(SearchButton_Click);
AddButton.Click += new EventHandler(AddButton_Click);
OKButton.Click += new EventHandler(OKButton_Click);
}
//Other code left out
}
OriginalL'auteur Greg Hurlman | 2008-10-07
Vous devez vous connecter pour publier un commentaire.
Il semble que l'ajout de UseSubmitBehavior="false" pour le bouton définitions a résolu mon problème. Ne sais toujours pas pourquoi que le premier bouton, cliquez sur travaillé à tous.
OriginalL'auteur Greg Hurlman
La raison la plus probable pour ceci serait l'Id client .Net génère pour ses contrôles en train de changer. Ces sont attribuées de façon dynamique et peut changer entre publications /partielle des publications.
Si les contrôles sont ajoutés au panneau de façon dynamique, l'ID de votre bouton pourraient être différents entre les publications à l'origine .Net pour être incapable d'attacher l'événement click pour le gestionnaire d'événements correct dans votre code.
OriginalL'auteur Blatfrig
Dans mon cas, j'ai eu un
LinkButton
dans undgPatients_ItemDataBound
gestionnaire d'événement qui a utilisé lePostBackUrl
propriété.Le moment j'ai changé le
LinkButton
à unHyperLink
, le problème a disparu.OriginalL'auteur Tebo