none
Mindestens eine Eigenschaft für Typ <LinqEntity> konnte nicht festgelegt werden. <Wert> ist kein gültiger Wert für Int32. RRS feed

  • Allgemeine Diskussion

  • Hallo Community,

    ich habe ein Problem mit einem automatischen Löschvorgang im GridView in ASP.NET. Wenn ich eine Zeile löschen möchte erscheint die oben genannte Fehlermeldung. ASP.NET stört sich anscheinend an der Rückkonvertierung für einen Wert in dem GridView, den ich per DataFormatString formatiert habe. In der Spalte stehen Zahlen wie z.B. -18.065 (also mit Minuszeichen und Dezimaltrennzeichen).

    Wie kann ich den Fehler umgehen?

    Gruß

    Gerrit

    Freitag, 27. März 2015 15:29

Alle Antworten

  • Hallo Gerrit,

    poste doch bitte den relevanten Code, sowohl den für das Auslesen und Zuordnen der Datensatzliste als auch den für das Löschen. Die Deklaration des GridView und ggfs. der Datenquelle bitte nicht vergessen.

    Generell solltest Du immer mit den Originalwerten aus der Datenquelle und nicht mit den ggfs. für die Ausgabe formatierten Werten im GridView arbeiten. D.h. auch das Löschen sollte in der Datenquelle passieren und keinen Rückgriff auf die Ausgabewerte des GridView vornehmen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 27. März 2015 16:20
    Moderator
  • Hallo Gerrit,

    ist der Thread noch aktuell?

    Gruß

    Aleksander


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht,  kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Montag, 30. März 2015 08:09
  • Ja, ist er ;-) Bin nur am Wochenende nicht dazu gekommen den Code zu posten. Ich benutze eigentlich nur die Standard-Funktionalitäten. Irgendwie bekommt es ASP.NET nicht hin, den Wert den ich mit {0:N0} formatiert habe, beim Postback zu casten. Dabei will ich ja eigentlich gar nichts updaten, sondern nur den Datensatz löschen.

    <asp:GridView ID="gridviewTbl" runat="server"  
            AutoGenerateColumns="False" DataKeyNames="ID" 
            DataSourceID="LinqDataSourceTbl" SkinID="gridviewDefault" OnRowDeleting="gridviewTbl_RowDeleting">
            <Columns>
                            <asp:BoundField DataField="Liter" HeaderText="Liter" SortExpression="Liter" DataFormatString="{0:N0}" />
            </Columns>
        </asp:GridView>
        <asp:LinqDataSource ID="LinqDataSourceTbl"  runat="server" ContextTypeName="MyDBDataContext" EnableDelete="True" 
            EntityTypeName="" TableName="Tbl" OnSelecting="LinqDataSourceTbl_Selecting" OnDeleting="LinqDataSourceTbl_Deleting">
        </asp:LinqDataSource>


            protected void LinqDataSourceTbl_Deleting(object sender, LinqDataSourceDeleteEventArgs e)
            {
                  // e.OriginalObject ist null
            }



    Montag, 30. März 2015 09:55