2010-03-15 11 views
1

J'essaie de connecter mon gridview à un LinqDataSource pour sélectionner, mettre à jour, insérer et supprimer des enregistrements. Je suis en mesure de passer en mode édition et d'annuler le mode d'édition, mais lorsque je clique sur la mise à jour, rien ne se passe.Je ne peux pas "Activer l'édition" sur ma grille

J'ai trouvé quelques choses en ligne qui disent de cocher la case "Activer l'édition" dans la balise active gridview mais quand je vais dans la balise active les seules cases qui apparaissent sont: Activer la pagination, Activer le tri et Activer sélection. Les autres n'apparaissent pas. Quelqu'un voit-il un problème avec ce que je fais ci-dessous?

<asp:GridView ID="gv_Personnel" 
        runat="server" 
        OnRowDataBound="gv_Personnel_DataBind" 
        AutoGenerateColumns="False" 
        ShowFooter="True" 
        DataKeyNames="BudgetLineID" 
        AutoGenerateEditButton="True" 
        AutoGenerateDeleteButton="True" 
        DataSourceID="lds_Personnel" 
        > 
     <Columns>     
      <asp:BoundField HeaderText="Level of Staff" DataField="LineDescription" /> 
      <asp:BoundField HeaderText="Hrs/Units requested" DataField="NumberOfUnits" /> 
      <asp:BoundField HeaderText="Hrs/Units of Applicant Cost Share" DataField="" NullDisplayText="0" /> 
      <asp:BoundField HeaderText="Hrs/Units of Partner Cost Share" DataField="" NullDisplayText="0" /> 
      <asp:BoundField FooterStyle-Font-Bold="true" 
       FooterText="TOTAL PERSONNEL SERVICES:" HeaderText="Rate" 
       DataFormatString="{0:C}" DataField="UnitPrice" > 
      <FooterStyle Font-Bold="True" /> 
      </asp:BoundField> 
      <asp:TemplateField HeaderText="Amount Requested" 
       ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" 
       FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"> 
       <FooterStyle BorderWidth="2px" Font-Bold="True" HorizontalAlign="Right" /> 
       <ItemStyle HorizontalAlign="Right" /> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Applicant Cost Share" 
       ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" 
       FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"> 
       <FooterStyle BorderWidth="2px" Font-Bold="True" HorizontalAlign="Right" /> 
       <ItemStyle HorizontalAlign="Right" /> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Partner Cost Share" 
       ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" 
       FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"> 
       <FooterStyle BorderWidth="2px" Font-Bold="True" HorizontalAlign="Right" /> 
       <ItemStyle HorizontalAlign="Right" /> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Total Projet Cost" 
       ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" 
       FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"> 
       <FooterStyle BorderWidth="2px" Font-Bold="True" HorizontalAlign="Right" /> 
       <ItemStyle HorizontalAlign="Right" /> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
    <asp:LinqDataSource ID="lds_Personnel" runat="server" 
     ContextTypeName="nrm.FRGPproposal.FrgpropDataContext" 
     Select="new (BudgetLineID, UnitPrice, LineDescription, NumberOfUnits)" 
     TableName="BudgetLines" 
     Where="ProposalID == @PropNumber &amp;&amp; BudgetLineTypeCode == @BudgetLineTypeCode" 
     EnableDelete="True" EnableInsert="True" EnableUpdate="True"> 
     <WhereParameters> 
      <asp:SessionParameter Name="PropNumber" SessionField="PropNumber" Type="Int32" /> 
      <asp:Parameter DefaultValue="S" Name="BudgetLineTypeCode" Type="Char" /> 
     </WhereParameters> 
    </asp:LinqDataSource> 

Répondre

1

L'avez-vous essayé sans utiliser les types anonymes? Dans le code, vous ne pouvez pas mettre à jour anon. types dans la base de données ...

+0

Ce qui serait un type anonyme dans le code ci-dessus? –

+0

Select = "new (IDLit Budget, UnitPrice, LineDescription, NumberOfUnits)" – citronas

+0

Oui Sélectionnez Nouveau crée le type anonyme; travailler avec la table de base si possible. –

0

On dirait que cela a été causé par moi ayant la valeur de sélection définie sur mon LinqDataSoruce. Voir le LDS mis à jour ci-dessous:

<asp:LinqDataSource ID="lds_Personnel" runat="server" 
    ContextTypeName="nrm.FRGPproposal.FrgpropDataContext" 
    TableName="BudgetLines" 
    Where="ProposalID == @PropNumber &amp;&amp; BudgetLineTypeCode == @BudgetLineTypeCode" 
    EnableDelete="True" EnableInsert="True" EnableUpdate="True"> 
    <WhereParameters> 
     <asp:SessionParameter Name="PropNumber" SessionField="PropNumber" Type="Int32" /> 
     <asp:Parameter DefaultValue="S" Name="BudgetLineTypeCode" Type="Char" /> 
    </WhereParameters> 
</asp:LinqDataSource>