none
GridView erreur lors du DataBind () RRS feed

  • Question

  • Bonjour,

    je migre plusieurs pages ASP.NET sous SharePoint (Publishing).
    J'ai une page qui contient un GridView avec pour DataSource un DataSet issu d'un fichier xml.

    Concernant les colonnes du GridView,
    certaines de ces colonnes sont des ItemTemplate de type CheckBox.
    Pour associer les données GridView.DataBind() j'ai formaté les colonnes de cette façon

     <asp:TemplateField HeaderText="Reporting mensuel" HeaderStyle-Font-Size="X-Small">
                        <EditItemTemplate>
                            <asp:CheckBox ID="cbReportingMensuel" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="cbReportingMensuel" runat="server" Checked='<%# Eval("reporting_mensuel_fr").ToString().Equals("1")%>' />
                        </ItemTemplate>
                        <HeaderStyle Font-Names="Arial" Font-Size="X-Small" Width="20px"></HeaderStyle>
                    </asp:TemplateField>

    Les données dans la source de données, les colonnes sont de types String, false est "0", true est "1".
    Pour afficher la donnée dans le checkbox, la propriété Checked est évaluée de cette façon
    Checked='<%# Eval("reporting_mensuel_fr").ToString().Equals("1")%>'
    La version web .NET fonctionne sans problème:
    Les checkbox sont cochés lorsque la données est à "1" et décoché lorsque la donnée est à "0".

    Mais j'ai un problème dans la page sous SharePoint :
    lors de l'appelle de la méthode MonGridView.DataBind ()

    j'ai une erreur de type :
    DataBinding : 'System.Data.DataRowView' ne comporte pas de propriété appelée '1'.


    Je ne comprends pas pourquoi cette erreur à lieu et ce qu'elle signifie.
    Je vous remercie pour votre aide


    Trystesire
    vendredi 12 mars 2010 13:58

Réponses

  • Bonjour,

    j'ai trouvée une solution.
    Etant donnée la restriction concernant PageEventValidation qui doit obligatoirement être false dans une page aspx SharePoint
    je pense que c'est la raison pour laquelle Eval ne fonctionnait pas correctement.

    J'utilise à la place le contrôle SharePoint:SPGridView plutôt que asp:GridView dans mes pages
    et je n'ai plus aucun probèmes.

    Les 2 controles sont très similaires je n'ai pas eu à changer le Code-Behind (sauf pour la déclaration du controle).



    Voilà si ça peut aider ceux qui se retrouvent dans la même situation

    Bonne journée

    • Marqué comme réponse Trystesire vendredi 12 mars 2010 15:04
    vendredi 12 mars 2010 15:04