im nouveau à asp.net .. s'il vous plaît ours avec moi si ma question est trop trivial !!! :)Une variable déclarée au niveau de la classe mais initialisée dans page_load perd sa portée dans un eventhandler button_click?
Im en utilisant un contrôle Accordian dans un panneau de mise à jour. et j'ai aussi un bouton pour enregistrer quelques données du contrôle accordéian! - Ce complet est un contrôle utilisateur qui est utilisé dans une autre page .aspx.
maintenant dans l'événement page_load du contrôle de l'utilisateur j'initialise ma connexion de base de données qui fonctionne parfaitement lors du chargement des données à l'accordian .. mais quand je clique sur save, dans le bouton save nul..!! (Même si elle est initialisé dans le page_load) s'il vous plaît aider ..
.ascx est comme ici:
<asp:UpdatePanel ID="PrefPanel" runat="server" >
<ContentTemplate>
<ajaxToolkit:Accordion ID="PrefAccordion" runat="server" HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected" ContentCssClass="accordionContent"
BackColor="#E8EAF7" Height="530px" Width="500px" AutoSize="None" RequireOpenedPane="false"
BorderStyle="Solid" BorderWidth="1" BorderColor="Black">
<Panes>
<ajaxToolkit:AccordionPane ID="ProjCategoryPaneID" runat="server">
<Header > Project Category</Header>
<Content>
<asp:Panel ID="ProjCategoryPanel" runat="server" Width="100%">
<table align="center" width="100%">
<tr></tr>
<tr>
<td align="left">
<asp:CheckBoxList RepeatDirection="Vertical" TextAlign="Left" ID="ProjCategoryItem1" runat="server" AutoPostBack="false" CausesValidation="false" />
</td>
</tr>
</table>
</asp:Panel>
</Content>
</ajaxToolkit:AccordionPane>
<asp:Button ID="btnSavePref" CssClass="buttonsmall" runat="server" Text="Save" Width="60px" OnClick="btnSavePref_Click"/>
<asp:Button ID="btnCancelPref" CssClass="buttonsmall" runat="server" Text="Cancel" Width="60px" />
</ContentTemplate>
</asp:UpdatePanel>
le code se cache derrière comme ici:
public partial class UserPreferences : System.Web.UI.UserControl
{
private EAReportingDAL m_DataAccessLayer = null;
// Projects Category
Panel projectCategoryPanel;
CheckBoxList projectCategoryList;
protected void Page_Load(object sender, EventArgs e)
{
String connectionString = WebConfigurationManager.ConnectionStrings ["BSCDB"].ConnectionString;
m_DataAccessLayer = new EAReportingDAL(connectionString);
LoadUserPreferences();
}
protected void btnSavePref_Click(object sender, EventArgs e)
{
string userName = this.Page.User.Identity.Name;
DataSet availabeData = m_DataAccessLayer.GetUserPreferences(this.Page.User.Identity.Name, Constants.ProjectsUIView);
}
}
le bouton événement click gestionnaire btnSavePref_Click() l'objet de connexion db m_DataAccessLayer est toujours null, mais alors que le même objet dans LoadUserPreferences() [que je n'ai pas collé ici] fonctionne bien! Plz guide moi où je me trompe ou si quelqu'un a besoin de plus de détails !!
Sans code approprié, nous sommes aveugles. S'il te plaît, éclaire-nous. –
Avez-vous utilisé IsPostback – Prabhavith
@ShadowWizard: ?? – Viniez