2013-11-23 73 views
0

我應該如何去防止列表視圖中輸入重複的數據插入,任何人都可以幫助這個,我還是新的C#防止重複列表視圖中輸入的數據

ListViewItem lvi = new ListViewItem(); 
if (lvwRentBook.Items.Count == 0) 
{ 
    lvi.Text = books.BookCode.ToString(); 
    lvi.SubItems.Add(books.BookDesc.ToString()); 
    lvi.SubItems.Add(books.SupplierCode.ToString()); 
    lvi.SubItems.Add(books.PricePurchase.ToString()); 
    lvi.SubItems.Add(txtRentPRice.Text.ToString()); 
    lvi.SubItems.Add(books.PricePenalty.ToString()); 
    lvi.SubItems.Add("1".ToString()); 
    lvi.SubItems.Add(books.Author.ToString()); 
    lvi.SubItems.Add(books.Category.ToString()); 
    lvi.SubItems.Add(books.Active.ToString()); 
    lvi.SubItems.Add(books.ModifiedBy.ToString()); 
    lvi.SubItems.Add(books.ModifiedOn.ToString()); 
    lvi.SubItems.Add(books.CreatedBy.ToString()); 
    lvi.SubItems.Add(books.CreatedOn.ToString()); 
    lvwRentBook.Items.Add(lvi); 
} 
+2

您正在將單個項目添加到空列表。在這種情況下如何獲得重複的數據? –

+0

由於您在第一部分創建了一個listview實例,因此無法在此獲取任何重複項。你的書也是一個清單嗎?請顯示代碼。 – xiriusly

+0

如果我要驗證重複的數據 – Nian

回答

1

嘗試我發現下面的

if(lvwRentBook != null) 
{ 
    ListViewItem lvi = lvwRentBook.FindItemWithText(books.BookCode.ToString()); 
    // if it is null means, item does not exist.You can go ahead and add it. 
    if (lvi == null) 
    { 
    lvi = new ListViewItem(); 

     lvi.Text = books.BookCode.ToString(); 
     lvi.SubItems.Add(books.BookDesc.ToString()); 
     lvi.SubItems.Add(books.SupplierCode.ToString()); 
     lvi.SubItems.Add(books.PricePurchase.ToString()); 
     lvi.SubItems.Add(txtRentPRice.Text.ToString()); 
     lvi.SubItems.Add(books.PricePenalty.ToString()); 
     lvi.SubItems.Add("1".ToString()); 
     lvi.SubItems.Add(books.Author.ToString()); 
     lvi.SubItems.Add(books.Category.ToString()); 
     lvi.SubItems.Add(books.Active.ToString()); 
     lvi.SubItems.Add(books.ModifiedBy.ToString()); 
     lvi.SubItems.Add(books.ModifiedOn.ToString()); 
     lvi.SubItems.Add(books.CreatedBy.ToString()); 
     lvi.SubItems.Add(books.CreatedOn.ToString()); 
     lvwRentBook.Items.Add(lvi); 
    } 
    } 
+0

非常感謝,它的工作。 – Nian

0

一個解決方案是一個UpdatePanel中附上我的整個的ListView:

<asp:UpdatePanel ID="udpSiteInvite" UpdateMode="Conditional" runat="server"> 
    <ContentTemplate> 
     <asp:ListView ID="lsvSiteInvite" InsertItemPosition="FirstItem" DataSourceID="srcSiteInvite" 
      OnItemCommand="lsvSiteInvite_ItemCommand" runat="server"> 

... 

     </asp:ListView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

唯一的缺點是,這將重新填充控制你用過(文本框,至少;不確定DDL)。這對我來說不是一個問題,但如果是給你的,我想可以清除這些控件。