changer le contenu d'un control

changer le contenu d'un control - C#/.NET managed - Programmation

Marsh Posté le 09-09-2016 à 14:37:44    

Bonjour,
Je suis entrain de développer un siteweb en asp.net c#, je veux donner aux administrateurs le privilège de changer le contenu d'un label à travers un textbox sur le site. Je n'ai pas utilisé de master page, est ce qu'il y a un moyen de chagement.
Merci et bonne journée

Reply

Marsh Posté le 09-09-2016 à 14:37:44   

Reply

Marsh Posté le 13-09-2016 à 15:58:33    

Bonjour,
je veux savoir comment permettre aux utilisateurs de modifier le texte d'une etiquette de façon permanente sur asp.net c#
Merci d'avance.

Reply

Marsh Posté le 13-09-2016 à 19:05:34    

Déjà au lieu de recréer un topic pour poser exactement la même question demande toi pourquoi personne ne t'a répondu :sarcastic:
 
La question est très vague et incompréhensible :
- Quelle techno : ASP.Net Webform ou MVC ? Vu que tu parles de Label on va supposer Webform.
- La modif doit elle faite en temps réel (genre : l'utilisateur tape dans la textbox, le label s'update en même temps) ou bien après le clic sur un bouton (et donc avec un postback serveur) ?
- Ca veut dire quoi "permanente" ? Stocké dans une BDD et restauré quand l'utilisateur va rouvrir la page une semaine plus tard ? Ou bien dans un cookie ? Autre chose ?
- Qu'est ce que tu as déjà fait ?  
 
Faire de l'ajax ou du "temps réel" en webform c'est assez peu pratique parce que les contrôles générés en webforms ne se prêtent pas toujours aux manips faites côté client. Pour ça MVC est meilleur. Mais ton besoin est ultra simple, en 4 lignes de jquery on copie le textbox dans le label. Reste à éclaircir ton histoire de truc permanent.


---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 14-09-2016 à 14:21:11    

J'utilise asp.net, j'ai pu le faire mais pas de façon permanante, et en utilisant l'ajax j'utilisais ça:
<script>
        $(document).ready(function () {
            console.log("ready!" );
            $("#session2Label" ).empty();
            $("#session2Label" ).text("TextBox1" ).value;
        });
 
    </script>  
sur le c# j'utilisais ça  
 protected void Button1_Click(object sender, EventArgs e)
        {
if(IsPostBack)
            {
                session2Label.InnerText = string.Empty;
                session2Label.InnerText = TextBox1.Text;
            }
}
Alors, s'il y a une autre méthode qui réglera ça je serai très apréciés.
Mersi et bonne journée.
 
Alors, si

Reply

Marsh Posté le 14-09-2016 à 14:30:26    

pas la moindre idée d'où tu sors ta propriété InnerText, ça n'existe pas en webforms. C'est Text qu'il faut utiliser.

 
Code :
  1. protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3. if(IsPostBack)
  4.             {
  5.                 session2Label.InnerText = string.Empty;
  6.                 session2Label.InnerText = TextBox1.Text;
  7.             }
  8. }


Peut devenir tout simplement :

Code :
  1. protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3.                 session2Label.Text = TextBox1.Text;
  4. }


vu que
- pour entrer dans l'événement clic du bouton c'est forcément un postback.
- tu peux écrire le text sans vider le label d'abord.

 

La partie jquery doit fonctionner encore moins bien pour plein de raisons mais je ne peux pas te donner une version fonctionnelle sans la partie "contrôles" de ton code que tu as omis de poster.

 

Pour manipuler des contrôles serveur côté client en webforms il y a des contraintes, comme je disais au dessus. Le plus simple pour un néophyte est probablement d'utiliser la CssClass. Regarde aussi la propriété ClientID et les facilités syntaxiques de jquery comme les sélecteurs de la forme $("[id$=txttruc]" ).


Message édité par TotalRecall le 14-09-2016 à 14:32:46

---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 14-09-2016 à 15:35:41    

Premièrement, session2label.text ne marche pas pour moi, les choix d'intellisince que j'ai c'est(innerhtml, innertext) il n' y a pas de .text.
concernant le jquery:Voila quand j'entre un texte, ça marche de façon permanente, mais quand je place un textbox, ça ne marche pas:
<script>
        $(document).ready(function () {
            console.log("ready!" );
            $("#session2Label" ).empty();
            $("#session2Label" ).text("bonjour" );
        });
 
    </script>
celui il marche
 
<script>
        $(document).ready(function () {
            console.log("ready!" );
            $("#session2Label" ).empty();
            $("#session2Label" ).text("TextBox" ).value;
        });
 
    </script>
aussitôt je change page et je revient je trouve seulement l'ancien text.

Reply

Marsh Posté le 14-09-2016 à 16:48:08    

Alors je ne sais pas quel framework tu utilises mais ça n'est pas du webform et ton label n'est pas un System.Web.UI.WebControls.Label et en disant "asp.net" tu n'as toujours absolument pas répondu à ma question relative à la techno que tu utilises...
A la limite je peux toutefois continuer d'extrapoler en disant qu'en fait tu fais bien du webform mais que tu nous parles non pas de Label mais de balises html quelconques sur lesquelles tu mets des runat="server", d'où l'existence de ces propriétés :sarcastic:.

 

Je pense qu'il serait temps que tu postes un code complet au lieu de petits bouts et que tu lises un vrai tuto...


Message édité par TotalRecall le 14-09-2016 à 16:50:52

---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 14-09-2016 à 18:29:38    

Voila le code, j'utilise visual studio 2015.
page.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ChangerLabel.aspx.cs" Inherits="Projet.ChangerLabel" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <fieldset>
                <div>
                    <h1 style="font-weight: bold; font-size: x-large">Formulaire </h1>
                     
                    <ul>
                        <li>
                            <label id="session1Label" runat="server" style="font-weight: normal">Session 1 (1 au 11 juillet 2016) - « Niveau »</label></li>
                        <li>
                            <label id="session2Label" style="font-weight: normal" runat="server">Session 2 (11 au 21 juillet 2016) - « Niveau »</label></li>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                     
                        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                    </ul>
                    <br />
                    <p>
                        LE COÛT TOTAL DOIT ÊTRE ACQUITTÉ AVANT LE 3 JUIN 2016.  
                    </p>
                </div>
            </fieldset>
        </div>
    </form>
    <%--ça marche sans utilisation de bouton et de façon permanente, mais moi je veux donner un provilége a l'admin de changer le label a chaque fois il a besoin(dépend de la promotion)--%>
    <script>
        $(document).ready(function () {
            console.log("ready!" );
            $("#session2Label" ).empty();
            $("#session2Label" ).text("nouveau texte" );
        });
 
    </script>
</body>
</html>
 
Page.aspx.cs
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace SiciafUmcs
{
    public partial class ChangerLabel : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                //session2Label.InnerText = string.Empty;
                session2Label.InnerText = TextBox1.Text;
            }
        }
    }
}

Reply

Marsh Posté le 13-09-2016 à 16:09:29    

Bonjour,  
J'ai posté ma question ça fait 4 jours et je n'ai pas reçu de réponce, alors j'ai essayé de répondre a mon message, cela non plus ça marchait pas, je ne sais pas pourquoi, j'ai donc décidé d'écrire une autre question, ésperant que cette fois ça marchera.
Donc ma question est comment permettre aux utilisateurs de modifier le texte d'une etiquette d'une façon permaente sur asp.net c#, j'ai trouvé des exemples de jquery ajax et js mais avec une string, s'il y a un moyen de relier le label avec un textbox, en changeant le textbox, le label prend le même contenu.
 
Merci et une bonne journée.

Reply

Marsh Posté le 15-09-2016 à 11:12:18    

Les sujets suivant ont été fusionnés à ce sujet par Gilou

  • modifier le texte d'une étiquette


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed