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 컨트롤에 목록에있는 값을 넣어하려고 할 때 내가있는 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
}