我在C#中有columns(ProdcutId,ProductName,UnitPirce,Quantity)
的列表视图。我正在从文本框(txtproid,txtproname,txtunitprice,txtquantity)
中插入数据。所有这些txtbox都会在按钮单击时插入一次。我想要的是当我点击按钮时,它应该检查listview中的ProductId列。如果它包含来自' txtproid'的值,则不应在listview中添加所有txtbox,而应显示消息"此产品已包含在内#34;。它不应该检查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;
}
答案 0 :(得分: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);
}
}
}
我没有编译上面的代码,所以你必须检查一下。