首先让我以我知道这个问题已经被问过很多次的事实作为序言。我已尝试实施我已阅读的所有内容,但尚未解决我的问题。
我在 GridView 中显示了一个购物车,我正在尝试使更新功能正常工作。单击编辑(在有问题的行上)并更改文本框中的值,然后单击更新后,我总是返回一个空字符串。
我已经阅读了无数关于它是 PostBack 问题的帖子,但是我已经将我的 DataBind 方法封装在一个中,if(!Page.IsPostBack){}所以我不相信这是我的问题。
这些是我的 CodeFile 中的相关方法:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["thisCart"] == null)
{
Session["thisCart"] = new ShoppingCart();
}
thisCart = (ShoppingCart)Session["thisCart"];
if (!Page.IsPostBack)
{
FillData();
}
}
private void FillData()
{
gvShoppingCart.DataSource = thisCart.Items;
gvShoppingCart.DataBind();
if (thisCart.Items.Count == 0)
{
lblGrandTotal.Visible = false;
}
else
{
lblGrandTotal.Text = string.Format("Grand Total = {0,19:C}", thisCart.GrandTotal);
lblGrandTotal.Visible = true;
}
}
protected void gvShoppingCart_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
TextBox txtQuantity = (TextBox)gvShoppingCart.Rows[e.RowIndex].Cells[3].Controls[0];
int quantity = Int32.Parse(txtQuantity.Text);
thisCart.Update(e.RowIndex, quantity);
gvShoppingCart.EditIndex = -1;
FillData();
}
我通常很擅长寻找答案,但是这个让我难住了。
单击更新后站点崩溃,因为返回的值int quantity = Int32.Parse(txtQuantity.Text);是“”,显然你不能从中解析一个 int。
至于可能重复的“ASP.NET验证错误消息以更改标签文本”的标签。我找不到任何指向答案方向的东西。
杨魅力
湖上湖
相关分类