首先讓我以我知道這個問題已經(jīng)被問過很多次的事實(shí)作為序言。我已嘗試實(shí)施我已閱讀的所有內(nèi)容,但尚未解決我的問題。我在 GridView 中顯示了一個購物車,我正在嘗試使更新功能正常工作。單擊編輯(在有問題的行上)并更改文本框中的值,然后單擊更新后,我總是返回一個空字符串。我已經(jīng)閱讀了無數(shù)關(guān)于它是 PostBack 問題的帖子,但是我已經(jīng)將我的 DataBind 方法封裝在一個中,if(!Page.IsPostBack){}所以我不相信這是我的問題。這些是我的 CodeFile 中的相關(guān)方法: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(); }我通常很擅長尋找答案,但是這個讓我難住了。單擊更新后站點(diǎn)崩潰,因為返回的值int quantity = Int32.Parse(txtQuantity.Text);是“”,顯然你不能從中解析一個 int。至于可能重復(fù)的“ASP.NET驗證錯誤消息以更改標(biāo)簽文本”的標(biāo)簽。我找不到任何指向答案方向的東西。
2 回答

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗 獲得超6個贊
因為我剛剛學(xué)習(xí) ASP.net 和 C#,所以要弄清楚這是一個非常痛苦的問題。
當(dāng)我能夠在較早的任務(wù)中完成這項工作時,我并沒有使用母版頁,但我使用了這個項目。問題在于我<form runat="server">
在母版頁中使用了一個標(biāo)簽。<form runat="server">
由于每頁只能有一個標(biāo)簽,因此我的 GridView 沒有包含在一個標(biāo)簽中。一旦我刪除了母版頁并<form runat="server">
在 GridView 周圍添加了包裝器,一切都按預(yù)期工作。

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊
來電。FillData()
_ Page_PreInit
否則,當(dāng) ASP.Net 運(yùn)行時恢復(fù)網(wǎng)格的 ViewState 時,包括新的文本框數(shù)據(jù),還沒有地方可以放置它。請記住,每個服務(wù)器事件都使用頁面類的全新實(shí)例,并且必須從頭開始重建整個頁面。
- 2 回答
- 0 關(guān)注
- 154 瀏覽
添加回答
舉報
0/150
提交
取消