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

C# Discussion :

FindControl TextBox dans GridView


Sujet :

C#

  1. #1
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut FindControl TextBox dans GridView
    Bonjour,

    Je suis complètement bloquée dans la suite de mon développement.

    J'ai ce bout de code dans ma 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
     
     <asp:DetailsView ID="idDV" runat="server" 
            DataSourceID="ODS"
            DefaultMode="Edit"
            DataKeyNames="RIW_ID" AutoGenerateRows="False">
            <Fields>
     
     
    <asp:TemplateField HeaderText="Déroulement de l'incident : ">
    <EditItemTemplate>
        <asp:GridView ID="flowGV" runat="server" ShowFooter="true" AutoGenerateColumns="false" GridLines="None" ShowHeader="true" OnRowDeleting="flowGV_RowDeleting">
            <Columns>
                <asp:TemplateField HeaderText="Date/Heure">
                    <ItemTemplate>
                        <asp:TextBox ID="RIW_F_DateTxt" runat="server" Text='<%# GetDate(Eval("RIW_F_Date")) %>' MaxLength="10"></asp:TextBox>                                                                                                         
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Description">
                    <ItemTemplate>
                        <asp:TextBox ID="RIW_F_FlowTxt" runat="server" Text='<%# Eval("RIW_F_Flow") %>' MaxLength="1000" Width="400px" Height="50px" TextMode="MultiLine"></asp:TextBox>
                    </ItemTemplate>
                    <FooterStyle HorizontalAlign="Right" />
                    <FooterTemplate>
                        <asp:Button ID="addFlowBtn" runat="server" Text="+" OnClick="addFlowBtn_Click"/>
                    </FooterTemplate>
                </asp:TemplateField>
                <asp:CommandField ShowDeleteButton="true" />
            </Columns>
        </asp:GridView>
        <asp:ObjectDataSource ID="flowODS" runat="server" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetDataByRIW" TypeName="RapportsIncidentWebApp.DAL.RapportsIncidentDataSetTableAdapters.RIW_FLOWSTableAdapter" UpdateMethod="Update">
            <SelectParameters>
                <asp:QueryStringParameter Name="RIW_F_RIW_RIWParam" QueryStringField="id" Type="Int32" />
            </SelectParameters>
        </asp:ObjectDataSource>
    </EditItemTemplate>
    </Fields>
    </asp:DetailsView>
    J'ai donc une DetailsView qui fonctionne très bien au premier affichage avec (notamment) un GridView avec un bouton + qui appelle addFlowBtn_Click.

    Dans mon code cs j'ai ce bout de code appelé lors du click sur le bouton (addFlowBtn_Click) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach (Column oneCol in col)
    {
       TextBox txtBox = (TextBox)GV.Rows[rowIndex].Cells[1].FindControl(oneCol.name + "Txt");
       txtBox.Text = dt.Rows[i][oneCol.name].ToString();                           
    }

    col est un array d'objets qui contient un nom de colonne et son type.

    Ici j'ai RIW_F_Date (de type DateTime) et RIW_F_Flow (de type String).

    A la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox txtBox = (TextBox)GV.Rows[rowIndex].Cells[1].FindControl(oneCol.name + "Txt")
    Le contrôle RIW_F_DateTxt n'est pas trouvé et le code retourne donc null.

    Par contre, ça fonctionne très bien pour le contrôle RIW_F_FlowTxt.

    Mon code est identique pour les deux contrôles dans la page aspx.

    La seule différence entre les deux contrôles est le type de données qu'il doit contenir. RIW_F_Date est de type Date et RIW_F_Flow de type varchar dans la base de données.

    Je ne parviens pas à trouver mon erreur, j'utilise le même code à plusieurs endroit dans mon développement et tout fonctionne bien pour les type string mais pas pour ce seul type Date.

    Pouvez-vous m'aider?

    D'avance merci.
    miniil

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 900
    Points : 1 918
    Points
    1 918
    Par défaut
    Est-ce-que ton RIW_F_DateTxt n'est pas dans Cells[0] au lieu de Cells[1] ?

Discussions similaires

  1. Réponses: 13
    Dernier message: 31/07/2013, 23h32
  2. [Asp.Net]TextBox dans une Gridview
    Par Noobs_ dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 08/06/2009, 02h39
  3. Insertion dynamique de textbox dans un gridview
    Par ahmedmido dans le forum ASP.NET
    Réponses: 1
    Dernier message: 06/08/2008, 13h11
  4. [C#] Accéder au contenu d'un textbox dans un Gridview en mode edit.
    Par slideveloppeur2006 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 23/04/2008, 11h19
  5. recuperer la valeur d'un textbox dans un gridview
    Par mouchkar dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/04/2007, 10h18

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