Je rencontre un problème étrange et je ne sais pas où chercher ou déboguer. J'ai une page parent A qui a un contrôle de zone de liste déroulante avec 7 provinces; Chaque province a un contrôle utilisateur (vue). Par défaut, l'index sélectionné est la province "SK" qui charge dans la même page un contrôle utilisateur View dynamiquement.Événement C# onClick sur ASP.NET Bouton non lancé initialement mais postsbacks ... et éventuellement déclenché après plusieurs clics
Ci-dessous mon code HTML et derrière la page parent
<telerik:RadComboBox ID="cmbProvince" runat="server" OnSelectedIndexChanged="cmbProvince_SelectedIndexChanged" AutoPostBack="true">
<Items>
<telerik:RadComboBoxItem runat="server" Text="Quebec" Value="QC" />
<telerik:RadComboBoxItem runat="server" Text="Ontario" Value="ON" />
<telerik:RadComboBoxItem runat="server" Text="Saskatchewan" Value="SK" />
<telerik:RadComboBoxItem runat="server" Text="Manitoba" Value="MB" />
<telerik:RadComboBoxItem runat="server" Text="Yukon" Value="YT" />
<telerik:RadComboBoxItem runat="server" Text="Nuvanut" Value="NU" />
</Items>
</telerik:RadComboBox>
protected void Page_PreInit(object sender, EventArgs e)
{
MasterPage master = this.Master;
_currentProvince = GetCurrentOperatingProvince(IsPostBack);
cmbProvince.SelectedValue = _currentProvince;
txtReferenceNo.Text = "TECHLOS" + DateTime.Now.ToString("MMddyyyy-HHMMss");
//Reload Dynamic Control on Every Page Creation
LoadDetailControl();
}
private void LoadDetailControl()
{
UserControl ucPPSAControl = (UserControl)LoadControl(GetUserControlPath(_currentProvince));
IPPSAView provView = ucPPSAControl as IPPSAView;
ApplicationContext.TargetProvince = _currentProvince;
PPSAPresenter presenter = new PPSAPresenter(provView, ApplicationContext);
provView.AttachPresenter(presenter, cmbProvince.SelectedValue, txtReferenceNo.Text);
phPPSAControl.Controls.Add(ucPPSAControl);
}
protected void cmbProvince_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
phPPSAControl.Controls.Clear();
_currentProvince = e.Value;
LoadDetailControl();
}
Dans chaque UC par province, il a un bouton de recherche avec un événement OnClick. La première fois que j'atterris dans la province par défaut, le bouton Rechercher fonctionne comme prévu et déclenche OnClick et le gestionnaire d'événement Search_Click est exécuté.
est inférieur à celui d'une UC typique pour chaque province
HTML button.
<telerik:RadButton ID="btnSearch" runat="server" Text="Search" OnClick="Search_OnClick">
</telerik:RadButton>
and Code behind
protected void Search_OnClick(object sender, EventArgs e)
{
if (isValidSearchRequest())
{
DisplayResultsFromResponse(presenter.Search());
}
else
{
phResponse.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>Invalid Search Request</span>")));
}
}
Maintenant, quand je change la province à « ON » (ou toute autre province a le même comportement), Lorsque je clique sur le bouton de recherche sur l'UC nouvellement générée, elle ne publie que sans déclencher l'événement OnClick. En cliquant deux fois, fait la même chose ... et la troisième fois, il déclenche le OnClick ... et a fonctionné comme d'habitude !!! Ce problème se produit si j'ai "ON" Voir la première fois qu'il charge et "SK" Voir (ou toute autre vue d'ailleurs) l'heure sencond, où je peux supposer quelque chose avec la création initiale de la vue le bouton fonctionne correctement ... mais le rechargement ultérieur d'un nouveau contrôle provoquera l'échec du OnClick.
Un autre point à noter, Une fois que je change la province, même si je reviens à la province d'origine, le Surclic ne fonctionnera pas ... Aussi j'utilise Telerik contrôle avec RadAjaxManager
Comment je peux déboguer cela pour savoir où est mon problème ... encore mieux comment puis-je résoudre ce problème?
Je suis passé par votre code, je l'ai trouvé le problème est fondamentalement avec votre chèque de contrôle ajax pour votre panneau de mise à jour et ContentTemplate –
peut vous s'il vous plaît être plus précis et comment je peux résoudre ceci? Désolé je viens de commencer à utiliser AJAX et Telerik ... donc c'est probablement le cas parce que parfois je viens d'essayer les contrôles sans comprendre pleinement les implications .. sur la façon dont je devrais l'utiliser. – Gotcha