不能为负,避免在文本框上输入字母
Cannot be negative and avoid letter inputs on textbox
这是我来自 txtProductQuantity_TextChange:
的全部代码
protected void txtProductQuantity_TextChanged(object sender, EventArgs e)
{
TextBox txtQuantity = (sender as TextBox);
//int tempForTryParse = 0;
//if (!int.TryParse(txtQuantity.Text, out tempForTryParse))
//{
// txtQuantity.Text = txtQuantity.Text.Substring(0, txtQuantity.Text.Length - 1);
//}
DataListItem currentItem = (sender as TextBox).NamingContainer as DataListItem; // getting current item on where user wants to add or remove
HiddenField ProductID = currentItem.FindControl("hfProductID") as HiddenField;
Label lblAvailableStock = currentItem.FindControl("lblAvailableStock") as Label;
int tempInt = 0;
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || double.Parse(txtQuantity.Text) < 0 || !int.TryParse(txtQuantity.Text, out tempInt))
{
txtQuantity.Text = "1"; //default value is 1, no action
}
else
{
if (Session["MyCart"] != null) // not null means user has added a product in the shopping cart
{
if (Convert.ToInt32(txtQuantity.Text) <= Convert.ToInt32(lblAvailableStock.Text)) // check if quantity is greater than available stock
{
DataTable dt = (DataTable)Session["MyCart"]; // if quantity is less than the available stock, go inside the code
DataRow[] rows = dt.Select("ProductID = '" + ProductID.Value + "'"); // select specific row depending on the product id
int index = dt.Rows.IndexOf(rows[0]);
dt.Rows[index]["ProductQuantity"] = txtQuantity.Text; // putting the value in the txtQuantityTextbox. changing the product quantity in the data table
Session["MyCart"] = dt; // add updated value to datatable
}
else // error if quntity is greater than available stock
{
lblAvailableStockAlert.Text = " Alert: product buyout should not be more than the available stock!";
txtQuantity.Text = "1"; // automatically change the quantity back to 1.
}
}
}
UpdateTotalBill();
}
我想要发生的是避免用户输入字母。或者类似的东西,如果他们这样做,将默认为“1”。
使用 if 语句检查
if(txtQuantity.Text.StartsWith("-")
{
//Code if negative
}
您也可以将字符串解析为数字,然后检查它是否为负数
if(int.Parse(txtQuantity.Text) < 0)
{
//Code if negative
}
因此,在您的代码上下文中,您可以像这样使用它
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || txtQuantity.Text.StartsWith("-"))
{
txtQuantity.Text = "1"; //default value is 1, no action
}
或
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || int.Parse(txtQuantity.Text) < 0)
{
txtQuantity.Text = "1"; //default value is 1, no action
}
为了避免在字段中输入文本,在文本框的文本更改事件中,您应该在此 if 语句中添加另一个条件,以及一个整数变量作为输出
int tempInt = 0;
bool parsed = int.TryParse(txtQuantity.Text, out tempInt);
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || tempInt < 0 || !parsed)
{
txtQuantity.Text = "1"; //default value is 1, no action
}
成功解决it.i添加
int.Parse(txtQuantity.Text)<1)
到我的代码的第一行。
这是我来自 txtProductQuantity_TextChange:
的全部代码protected void txtProductQuantity_TextChanged(object sender, EventArgs e)
{
TextBox txtQuantity = (sender as TextBox);
//int tempForTryParse = 0;
//if (!int.TryParse(txtQuantity.Text, out tempForTryParse))
//{
// txtQuantity.Text = txtQuantity.Text.Substring(0, txtQuantity.Text.Length - 1);
//}
DataListItem currentItem = (sender as TextBox).NamingContainer as DataListItem; // getting current item on where user wants to add or remove
HiddenField ProductID = currentItem.FindControl("hfProductID") as HiddenField;
Label lblAvailableStock = currentItem.FindControl("lblAvailableStock") as Label;
int tempInt = 0;
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || double.Parse(txtQuantity.Text) < 0 || !int.TryParse(txtQuantity.Text, out tempInt))
{
txtQuantity.Text = "1"; //default value is 1, no action
}
else
{
if (Session["MyCart"] != null) // not null means user has added a product in the shopping cart
{
if (Convert.ToInt32(txtQuantity.Text) <= Convert.ToInt32(lblAvailableStock.Text)) // check if quantity is greater than available stock
{
DataTable dt = (DataTable)Session["MyCart"]; // if quantity is less than the available stock, go inside the code
DataRow[] rows = dt.Select("ProductID = '" + ProductID.Value + "'"); // select specific row depending on the product id
int index = dt.Rows.IndexOf(rows[0]);
dt.Rows[index]["ProductQuantity"] = txtQuantity.Text; // putting the value in the txtQuantityTextbox. changing the product quantity in the data table
Session["MyCart"] = dt; // add updated value to datatable
}
else // error if quntity is greater than available stock
{
lblAvailableStockAlert.Text = " Alert: product buyout should not be more than the available stock!";
txtQuantity.Text = "1"; // automatically change the quantity back to 1.
}
}
}
UpdateTotalBill();
}
我想要发生的是避免用户输入字母。或者类似的东西,如果他们这样做,将默认为“1”。
使用 if 语句检查
if(txtQuantity.Text.StartsWith("-")
{
//Code if negative
}
您也可以将字符串解析为数字,然后检查它是否为负数
if(int.Parse(txtQuantity.Text) < 0)
{
//Code if negative
}
因此,在您的代码上下文中,您可以像这样使用它
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || txtQuantity.Text.StartsWith("-"))
{
txtQuantity.Text = "1"; //default value is 1, no action
}
或
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || int.Parse(txtQuantity.Text) < 0)
{
txtQuantity.Text = "1"; //default value is 1, no action
}
为了避免在字段中输入文本,在文本框的文本更改事件中,您应该在此 if 语句中添加另一个条件,以及一个整数变量作为输出
int tempInt = 0;
bool parsed = int.TryParse(txtQuantity.Text, out tempInt);
if (txtQuantity.Text == string.Empty || txtQuantity.Text == "0" || txtQuantity.Text == "1" || tempInt < 0 || !parsed)
{
txtQuantity.Text = "1"; //default value is 1, no action
}
成功解决it.i添加
int.Parse(txtQuantity.Text)<1)
到我的代码的第一行。