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 Ajax Discussion :

Problème avec le rafraichissement de page et l'affichage de texte


Sujet :

ASP.NET Ajax

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Problème avec le rafraichissement de page et l'affichage de texte
    Bonjour,
    je suis nouveau sur DotNET et aussi sur ajax (j'utilise visual studio 2010)
    je voudrais créer un blog.
    j'ai créer un "accessdatasource" ensuite j'ai placer un "repeater" que j'ai tout deux relié a une base de donnée.
    pour tester ça j'ai créer un bouton qui m'enregistre ce qui se trouve dans un textbox vers ma base de donnée.
    jusqu'ici tout va bien.
    j'ai entouré tout ca par un "updatepanel" et un "ContentTemplate" bien sur.
    1.premier problème:
    quand je clique sur mon bouton je doit rafraichir ma page pour voir ce que je viens d'ajouter à la base de donnée (je voulais que tout ce passe en même temps comme pour facebook)
    2. deuxième problème:
    j'ai remplacer mon "textbox" par un contrôle "editor" utilisant ajax.
    quand j'enregiste dans ma base de donnée tout va bien mais quand le texte est affiché dans le "repeater" il est sous forme html
    ex:
    j'écris => une phrase entiére
    il m'affiche => une phrase enti�re <br />
    j'ai vraiment besoin d'aide.
    merci

    voici un exemple de mon code vb
    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
     
      Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            '     If TextBox1.Text <> "" Then
            If MyControls.Content <> "" Then
     
                Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                                  "Data Source=" & Server.MapPath("~/App_Data/BD_Blog.mdb"))
                connection.Open()
     
                Dim sql As String = "INSERT INTO Comment (msg)" & "VALUES('" & MyControls.Content & "')"
                Dim cmd As New OleDbCommand(sql, connection)
     
                cmd.ExecuteNonQuery()
                connection.Close()
                'TextBox1.Text = ""
                MyControls.Content = ""
     
     
            End If
        End Sub
    page aspx
    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
     
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
     
                        <ContentTemplate>
     
                            <asp:AccessDataSource ID="AccessDataSource1" runat="server"
                                DataFile="~/App_Data/BD_Blog.mdb"
                                SelectCommand="SELECT * FROM comment ORDER BY N°">
                            </asp:AccessDataSource>
     
                            <br />
     
                            <table border=1 cellspacing=0 cellpadding=5 width=100% align="center">
     
                                <asp:Repeater ID="Repeater1" runat="server" DataSourceID="AccessDataSource1">
                                    <ItemTemplate>
                                        <tr>
                                            <td>
                                                <%# Container.DataItem("N°")%>
                                                <br />
                                                <%# Server.HtmlEncode(Container.DataItem("msg"))%>
                                            </td>
                                        </tr>
                                    </ItemTemplate>
                                </asp:Repeater>
                                <caption>
                                    <br />
                                </caption>
                            </table>
     
                            <br />
                            <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                            <asp:Button ID="Button1" runat="server" Text="Button"/>
                            <br />
                            <cc1:Editor ID="MyControls" runat="server" />
     
                        </ContentTemplate>
     
                    </asp:UpdatePanel>
                </div>
     
        <br />
        <br />
        </asp:Content>

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    Pour ton premier problème, je commencerais pas ceci :

    à la fin de ta procédure d'insertion ,tu ajoutes ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Repeater1.DataBind()
    et tu remplaces dans ton code aspx ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="AccessDataSource1">
                                    <ItemTemplate>
                                        <tr>
                                            <td>
                                                <%# Container.DataItem("N°")%>
                                                <br />
                                                <%# Server.HtmlEncode(Container.DataItem("msg"))%>
                                            </td>
                                        </tr>
                                    </ItemTemplate>
                                </asp:Repeater>
    par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="AccessDataSource1" 
                onitemdatabound="Repeater1_ItemDataBound">
                <ItemTemplate>
                    <tr>
                        <td>                                            
                            <asp:Label  ClientIDMode="Static" ID="lblNumero" runat="server" />
                        </td>
                        <td><asp:Label  ClientIDMode="Static" ID="lblMsg" runat="server" /></td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
    et tu utilises l'évènement itemDataBound dans lequel tu fais quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DirectCast(e.Item.FindControl("lblNom"),Label).Text = e.Item.DataItem("numero").ToString();
            DirectCast(e.Item.FindControl("lblNom"),Label).Text = e.Item.DataItem("msg").ToString();

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    merci beaucoup je m'y met tout de suite et je vous tiens informé.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    désolé mais j'ai pas su comment faire pour utilises l'évènement itemDataBound

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    lorsque tu es en mode designer, tu sélectionnes ton repeater.
    Ensuite dans les propriétés, tu vas dans les évènements et tu double-cliques sur ItemDataBound.

    Ensuite tu y mets le code.
    Qu'est-ce qui pose problème ?

  6. #6
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    D'accord avec tontonks même s'il est risquer de caster un objet et d'utiliser sur la même ligne une de ces propriétés(.Text). Si l'objet est null => NullPointerException...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DirectCast(e.Item.FindControl("lblNom"),Label).Text = e.Item.DataItem("numero").ToString();
            DirectCast(e.Item.FindControl("lblNom"),Label).Text = e.Item.DataItem("msg").ToString();

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    merci.
    je m'y met tout de suite.

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    une erreur s'est produite

    Erreur 1 'Label' est ambigu, importé des espaces de noms ou des types 'System.Windows.Forms, System.Web.UI.WebControls'.
    et ça ca me dépasse

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    c'est bon,
    les problèmes sont résolus tout fonctionne sauf que le résultat n'est pas bon rien n'as changé.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    Bizarre car avant de poster mon exemple , je l'ai testé et ça marchait.
    Peux-tu nous remontrer ton code avec les modifications ?

  11. #11
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    c'est bon cher amis.
    j'ai recréer une page avec un code minimum et tout fonctionne a nouveau
    je ne sais pas ce qui a changé ni ce que j'ai fait mais ça marche.

    merciiiii !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/08/2010, 11h27
  2. Problème avec l'éditeur de pages JSP
    Par flamant dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 07/06/2009, 18h52
  3. Problème avec mon template de page
    Par romaintaz dans le forum Mise en page CSS
    Réponses: 15
    Dernier message: 05/11/2008, 09h28
  4. [AJAX] ajax dans une page ajax.
    Par kriekbellevue dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/09/2008, 10h28
  5. Problème avec la mise en page
    Par mo_amyot dans le forum Word
    Réponses: 5
    Dernier message: 03/12/2007, 16h32

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