0
これは本当にシンプルなことかもしれませんが、数時間のコーディングの後に空白になってしまいました。 私はこれが正常に動作します一般リストの更新
int newtotalrows = listdetail.Count + rowstoadd -1;
for (int i = listdetail.Count; i <= newtotalrows; i++)
{
ArDocumentdetail detail = new ArDocumentdetail();
detail.Lineid = i;
detail.Itemid = 0;
detail.Quantity = 1;
if (listdetail.Count > 0)
listdetail.Insert(listdetail.Count, detail);
else
listdetail.Add(detail);
}
ViewState["InvoiceDetail"] = listdetail;
LoadGrid();
が、それはこれがGridViewのにバインドされます
lineid | Itemid
1 0
2 0
3 0
でリストを作成し、ページの読み込みに取り込む一般的なリストを持っています。私のグリッドビューには、行を削除するボタンがあります ここに私の問題があります。
私はそれがインデックスを見つけることができないと言われGridViewコントロールにリストの値を入れしようとすると、 私のリストは今
lineid | Itemid
1 0
3 0
あるので、私は私のGridViewのデータバインドさで、その後lineid = 2を削除するとしましょう
が、私のGridViewのは、そう、これらのインデックスが一致していないこの
lineid | Itemid
1 0
2 0 <- this use to be lineid = 3
のようなインデックスを読み込みます。リスト内の行を削除すると、私はその行番号を再生成すると思っています。
if (ViewState["InvoiceDetail"] != null)
listdetail = (ListArDocumentdetail)ViewState["InvoiceDetail"];
int index = listdetail.FindIndex(f => f.Lineid == row.RowIndex);
listdetail.RemoveAt(index);
for (int i = 0; i <= listdetail.Count; i++)
{
//here is where i assume it should regenerate list lineid value
}