Member 12232382 Ответов: 1

Asp.net, сравните значение текстового поля со значением столбца таблицы данных


Здравствуйте разработчики,
Я хочу сравнить значение текстового поля с таблицей данных, созданной в сеансе. Если значение текстового поля совпадает с идентификатором элемента столбца таблицы данных, оно не должно позволять повторно вводить этот элемент при нажатии кнопки. Скриншот

Что я уже пробовал:

охраняемых недействительными AddInGrid(объект отправителя, EventArgs в электронной)
{

messagelabel.Текст = "";
DataTable dtCurrentTable = (DataTable)ViewState ["CurrentTabele"];
DataRow drCurrentRow = null;

если (dtCurrentTable.Строк.Count > 0 & txtquantity.Text ! = "0" & checkstock ()= = true)
{

for (int i = 1; i <= dtCurrentTable.Rows.Граф; i++)
{

// Создание новой строки и присвоение значений
drCurrentRow = dtCurrentTable.Невров();
drCurrentRow ["Item Id"] = конвертировать.ToInt32(txtid. Text);
drCurrentRow ["Item Name"] = txtname.Текст;
drCurrentRow ["цена"] = конвертировать.ToInt32(txtprice.Текст);
drCurrentRow ["количество"] = конвертировать.ToInt32(txtquantity.Текст);
drCurrentRow ["Item Total"] = конвертировать.ToInt32(txttotalitemprice.Текст);
}
// Удаление начальной пустой строки
if (dtCurrentTable.Строки[0][0].Метод toString() == "")
{
dtCurrentTable.Строки[0].Удалить();
dtCurrentTable.Метод acceptchanges();

}


// Добавлена новая запись в DataTable
dtCurrentTable.Строк.Добавить(drCurrentRow);
// хранение DataTable в ViewState
ViewState ["CurrentTabele"] = dtCurrentTable;
// привязка Gridview с новой строкой
gvGridview1. DataSource = dtCurrentTable;
gvGridview1.Привязку();

}


else if (checkstock () = = false)
{
messagelabel.Текст = "Не Хватает";
}



}

1 Ответов

Рейтинг:
1

Sheila Pontes

Привет,

Добавьте код ниже в начале вашей функции,

//try to find the item id
DataRow[] drs = dtCurrentTable.Select("Item Id = '" + yourtextbox.Text + "'");

//Verify if the select return one line 
if (drs.Length > 0)
{
    //item finded, exit without add line
    messagelabel.Text = "This data already exists. You can't add again.";
    return;                    
}


Вот! Полный код.
protected void AddInGrid(object sender, EventArgs e)
{

messagelabel.Text = "";
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTabele"];

/****************************************************************
* CODE ADDED                                                    *
****************************************************************/

//try to find the item id
DataRow[] drs = dtCurrentTable.Select("Item Id = '" + yourtextbox.Text + "'");

//Verify if the select return one line 
if (drs.Length > 0)
{
    //item finded, exit without add line
    messagelabel.Text = "This data already exists. You can't add again.";
    return;                    
}

/****************************************************************
* END CODE                                                      *
****************************************************************/

//Your code

DataRow drCurrentRow = null;

if (dtCurrentTable.Rows.Count > 0 & txtquantity.Text != "0" & checkstock()==true)
{

for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{

//Creating new row and assigning values
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["Item Id"] = Convert.ToInt32(txtid.Text);
drCurrentRow["Item Name"] = txtname.Text;
drCurrentRow["Price"] = Convert.ToInt32(txtprice.Text);
drCurrentRow["Quantity"] = Convert.ToInt32(txtquantity.Text);
drCurrentRow["Item Total"] = Convert.ToInt32(txttotalitemprice.Text);
}
//Removing initial blank row
if (dtCurrentTable.Rows[0][0].ToString() == "")
{
dtCurrentTable.Rows[0].Delete();
dtCurrentTable.AcceptChanges();

}


//Added New Record to the DataTable
dtCurrentTable.Rows.Add(drCurrentRow);
//storing DataTable to ViewState
ViewState["CurrentTabele"] = dtCurrentTable;
//binding Gridview with New Row
gvGridview1.DataSource = dtCurrentTable;
gvGridview1.DataBind();

}


else if (checkstock() == false)
{
messagelabel.Text = "Stock Not Enough";
}

}