0

リストの削除に問題があります。

この 2 つのレコードを次のように想像してください。

アイテム 1: ID = 1001、名前 = "A"、依存関係 = 1、順序 = 1.00

アイテム 2: ID = 2354、名前 = "B"、依存関係 = 1、順序 = 1.01

それらは依存関係によって何らかの方法でリンクされており、Web ページの視覚効果は、別の要素によってネストされた要素のようなものです。フロントエンドでこのレコードを削除しようとしています。データベースレベルは問題ありません。これは、コレクションから要素を削除してデータバインドの更新を行うために使用したデータベースのラウンドトリップを回避するためです。しかし、今、要素がネストされているため、それを行う必要があるかわかりません。

リストの変更の問題を確認せずに、急いでこれを試しました。

        this.Entity.Items.Remove(this.CurrentItem);
        foreach(Item item in this.Entity.Items)
        {
            if(item.Dependency == this.CurrentItem.Depedency){
                this.Entity.Items.Remove(item);
            }
        }
        myRepeater.DataSource = this.Entity.Items
        myRepeater.DataBind();

それから私はやった

        this.Entity.Items.ToList().RemoveAll(x => x.Depedency == this.CurrentItem.Dependency);
        myRepeater.DataSource = this.Entity.Items
        myRepeater.DataBind();

しかし、ToList() は新しいリストを再作成し、これは同じリスト内の何も削除しません アイテムはエンティティ内のコレクション (リスト) です

エンティティ構造やデータベースの変更を許可しないでください。

4

1 に答える 1

1

for each の代わりに for ループを使用できます。

また、試すことができます

myRepeater.DataSource = this.Entity.Items.ToList().RemoveAll(x => x.Depedency == this.CurrentItem.Dependency);
于 2013-07-21T06:29:22.707 に答える