检查列表中重复的索引值
本文关键字:索引值 列表 检查 | 更新日期: 2023-09-27 18:23:45
我在C#中有一个带有columns(ProdcutId,ProductName,UnitPirce,Quantity)
的列表视图。我正在从文本框(txtproid,txtproname,txtunitprice,txtquantity)
中插入数据。单击按钮即可插入所有这些txtboxes。我想要的是,当我单击按钮时,它应该检查listview中的ProductId列。如果它包含来自"txtproid"的值,则不应在listview中添加所有txtboxes,而应显示消息"This Product is Already Included"。它不应该检查listv中的整个项目。
我尝试了很多东西,但都失败了,比如:
int c = 0;
if (listView1.Items.Count != 0)
{
foreach (ListViewItem lv in listView1.Items)
{
c = 0;
if (lv.SubItems[0].Text == cmbpid.SelectedItem.ToString())
{
Validations.ErrorMessage("Item already exists in the Cart");
c = 1;
}
}
}
else if (c == 0)
{
ListViewItem lvi = new ListViewItem(cmbpid.Text);
lvi.SubItems.Add(cmbpname.Text);
lvi.SubItems.Add(txtunitprice.Text);
lvi.SubItems.Add(txtproquantity.Text);
lvi.SubItems.Add(txtunittotal.Text);
lvi.SubItems.Add(txtbatch.Text);
listView1.Items.Add(lvi);
//clear fields
quvar = 0;
totalvar = 0;
txtproquantity.Clear();
txtunitprice.Clear();
txtunittotal.Clear();
GetListviewTotal();
txtbatch.Clear();
cmbpid.SelectedIndex = -1;
cmbpname.SelectedIndex = -1;
}
您的任务分为两个小函数。
首先,检查重复的产品id(比如CheckSameProductId()
)其次,将数据插入ListView。(比方说InsertProductData()
)
所以,下面的表格可以是。
if (CheckDuplicateId())
{
//show error text
}
else
{
//insert text boxes's data to List View
InsertProductData();
}
然后,例如,每个函数都可以写入。
//check whether it's already inserted
bool CheckDuplicateId()
{
foreach (ListViewItem lv in listView1.Items)
{
if (lv.SubItems[0].Text == cmbpid.SelectedItem.ToString())
{
//there is a duplicate data
return true;
}
}
//there is no duplicate data
return false;
}
//insert data using text boxes to listview ctrl
void InsertProductData()
{
foreach (Control x in this.Controls)
{
if (x is TextBox)
{
//I'm not sure your control z-order
lvi.SubItems.Add(((TextBox)x).Text);
}
}
}
我还没有编译上面的代码,所以你必须检查一下。