IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème avec un Listbox utilsant une WebMethod


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut Problème avec un Listbox utilsant une WebMethod
    Bonjour, j’ai un léger problème avec le contrôle Listbox utilisant les Web methods. En fait, je ne sais pas si le problème provient directement des Web methods mais le comportement du Listbox lors du click d’un évènement en javascript me laisse croire que c’est la source problème. Voici, mon problème, j’ai un contrôle Listbox contenu dans un UpdatePanel dans une page ASP (ContentPlaceHolder1). Le contrôle est rempli au Page_load. Le listbox est complété d’un contrôle textbox et de 3 boutons (sauvegarder, effacer et modifier). L’utilisateur peut ainsi insérer une entrée au listbox et l’effacer.
    Comme j’utilise les méthodes web, les boutons ont tous un évènement click en javascript, faisant référence à des méthodes coté-serveur. Ces méthodes statiques appellent des méthodes dans une classe externe permettant de mettre à jour des tables d’une BD SQL .
    Lorsque j’insère une nouvelle entrée au Listbox et que je fais la sauvegarde tout est impeccable. Si je continue en effaçant la nouvelle entrée tout semble correcte. Mon problème survient après avoir effacé la nouvelle entrée : si je reviens et que je clique sur 1 des 3 boutons l’entrée précédemment effacer réapparait dans la liste. J’ai bien essayé en mettant Autopostback à true mais rien ne change. J’ai aussi essayé en mettant mon remplissage de la liste du Page_load dans le Page_Init de la page mais rien ne fait. Le seul moyen de voir la vrai information est d’appuyer le bouton Actualiser dans Internet Explorer.

    Est-ce quelqu'un pourrait me mettre sur une bonne piste?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    Client-Side
                        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                            <ContentTemplate>
                                <div class="container">
                                    <div id="Groups">
                                        <asp:TextBox ID="txtNewGroup" runat="server"></asp:TextBox>
                                        <asp:Button ID="btnAddGroup" runat="server" Text="add new group" OnClick="btnAddGroup_Click" />
                                        <asp:Label ID="lblGroup" runat="server"></asp:Label>
                                        <asp:RequiredFieldValidator ID="rfValidatorGroup" ControlToValidate="txtNewGroup" Text="*" InitialValue="<Enter new group&nbsp;here>" Display="Dynamic" runat="server" />
                                        <br />
                                        <asp:ListBox ID="lstGroups" runat="server" CssClass="listbox" AutoPostBack="false" EnableViewState="false"></asp:ListBox>
                                        <br />
                                        <div class="buttonSave" >
                                            <span><asp:Button ID="btnSaveGroup" runat="server" Text="Save" Width="45px" OnClick="btnSaveGroup_Click" /><span>&nbsp;
                                            <span><asp:Button ID="btnEditGroup" runat="server" Text="Edit" Width="45px" /><span>&nbsp;
                                            <span><asp:Button ID="btnDeleteGroup" runat="server" Text="Delete" Width="45px"/></span>&nbsp;
                                            <%--<asp:RequiredFieldValidator runat="server" ID="rfGroupSelect" ControlToValidate="lstGroups" Display="Dynamic" ErrorMessage="Please choose at least one group" /> --%>
                                        </div>
                                        <span><asp:Label ID="lblGroupSaved" runat="server"></asp:Label></span>
                                        &nbsp;
                                    </div>
                                </div>
                            </ContentTemplate>
                        </asp:UpdatePanel>
     
    Code-Behind
    public partial class Admin : System.Web.UI.Page
    {
        private void Page_Init(object sender, System.EventArgs e)
        {
            FillListbox(lstGroups);
        }
     
        public void FillListbox(ListBox lstGroup)
        {
            try
            {
                Fields desGroups = new Fields();
     
                lstGroup.Items.Clear();
                lstGroup.DataSource = desGroups.GetGroups();
                lstGroup.DataBind();
     
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        [System.Web.Services.WebMethod]
        [System.Web.Script.Services.ScriptMethod()]
        public static bool GroupSelected()
        {
            try
            {
                return true;
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
        }
        [System.Web.Services.WebMethod()]
        public static bool DeleteGroup(string aGroup)
        {
            Fields Group = new Fields();
            Group.DeleteGroup(aGroup);
            return true;
        }
    }
     
     
    Javascript
     
    function btnDeleteGroup_Click()
    {
        PageMethods.GroupSelected(GroupSelected_Success, GroupSelected_Failure);
    }
     
    function GroupSelected_Success(result)
    {
        if (result)
        {
            var answer = (confirm("Are you sure you want to delete this information?"))
            if (answer)
            {
                var ind = $get("ctl00_ContentPlaceHolder1_TabContainer_TabField_lstGroups").selectedIndex;
                var GroupSelected = $get("ctl00_ContentPlaceHolder1_TabContainer_TabField_lstGroups").options[ind].value;
                var lstGroups = $get("ctl00_ContentPlaceHolder1_TabContainer_TabField_lstGroups");
     
                lstGroups.remove(lstGroups.options.selectedIndex);
                PageMethods.DeleteGroup(GroupSelected, Items_Success, Items_Failure);
             }
             else
             {
               alert("Operation canceled.");
             }
        }
        else 
            alert("An error occurred.");
    }
     
    function GroupSelected_Failure(error)
    {
        if (error)
            alert(error.get_message());
    }
     
    function Items_Success(result)
    {
        if (result)
        {
            alert("Your operation has been completed.");
        }
        else 
            alert("An error occurred.");
    }
     
    function Items_Failure(error)
    {
        if (error)
            alert(error.get_message());
    }

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    c'est peut être un proble de cache de ton navigateur web ou de ton serveur IIS.
    regarde de ce coté là.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut Problème avec un Listbox utilsant une WebMethod
    Je n'ai aucun problème coté cache et j'utilise le server localhost Cassini.

Discussions similaires

  1. problème avec un textBox et une listBox
    Par THIB46 dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 20/05/2015, 11h26
  2. Problème avec le RowSource d'une ListBox
    Par niavlys26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/07/2008, 04h29
  3. [Débutant] Problème avec les paramètres d'une proc stockée
    Par babulior dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/06/2005, 15h38
  4. Problèmes avec un TWebBrowser dans une DLL
    Par bellamyjc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/01/2005, 22h35
  5. Problème avec un LIKE dans une procédure stockée
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/12/2004, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo