Re: [問題] 新手問題 如何按下按鈕不會執行Page_load

看板Web_Design作者 (好煩呀)時間14年前 (2011/08/17 19:37), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
推 pm2001:use IsPostBack 推 ivory0212:after table add, save to session 謝謝樓上兩位大大.. 了解IsPostBack的功用了.. 如果在頁面上有個Button, 有個Textbox 每按下button一次都把數字+1, 以下作法是ok的 Protected Sub Page_Load(ByVal sender As Object) { If (!IsPostBack) TextBox1.Text = "1" End If } Protected Sub Button1_Click(ByVal sender As Object) { TextBox1.Text = Val(TextBox1.Text) + 1 } 但是如果這樣寫就不行了: Public class default: { int i = 0; Protected Sub Page_Load(ByVal sender As Object) { If (!IsPostBack) i += 1; TextBox1.Text = i.ToString(); End If } Protected Sub Button1_Click(ByVal sender As Object) { i +=1; TextBox1.Text = i.ToString(); } } 這樣每次按下BUTTON都只是顯示2, 不會再增加.. 是不是因為每按下Button都會再執行int i = 0;這句呢?? 如果是這樣, 我的i要放去哪裡宣告呢? 謝謝各位大大.. ps: 是不是需要使用session呢?? session怎麼使用呢? 可是不是說session盡量不要使用嗎? 太多session會增加伺服器的負擔? ※ 引述《sun3star (好煩呀)》之銘言: : 新手問題 如何按下按鈕不會執行Page_load : 各位大大好 : 我正使用C# 寫asp.net : 在頁面內有一個gridview, 我想在gridview上放幾個textbox, : 按下按鈕會把textbox內的內容放入gridview : 所以打算用data table暫存著, 每次按下button會把textbox內資料放入table : 再gridview.DataSource = table : 所以, 我在頁面的cs檔內的class內放了個公用變數 : public DataTable table = new DataTable(); : 按下button會把textbox內資料放入table : 可是, table的column定義我放在page_load : 每次按下button就會再執行一次page_load : 就會把我上一次放進girdview的資料洗掉, 只剩這次的 : 請問怎樣寫可以每次按下按鈕不會執行page_load, : 或者table的column定義不要放在page_load, 還可以放在哪邊做initialize? : 程式碼如下: : public partial class stockIn : System.Web.UI.Page : { : public DataTable table = new DataTable(); \\<--用來放gridview資料的table : protected void Page_Load(object sender, EventArgs e) : { : table.Columns.Add("ID", typeof(String)); \\<--Table定義 : table.Columns.Add("Name", typeof(String)); : table.Columns.Add("Qty", typeof(Int32)); : table.Columns.Add("Unit", typeof(String)); : } : protected void AddGoodsBT_Click(object sender, EventArgs e) : { : DataRow row = table.NewRow(); : row["ID"] = GoodsNoTB.Text; : row["Name"] = GoodsNameTB.Text; : row["Qty"] = Convert.ToInt32(GoodsQtyTB.Text); : row["Unit"] = GoodsUnitTB.Text; : table.Rows.Add(row); : Gridview1.DataSource = table; : Gridview1.DataBind(); : } : } : 請教各位大大. -- 一個人的快樂,不是因為他擁有的多,而是他計較的少。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.175.183.26

08/17 20:50, , 1F
ViewState
08/17 20:50, 1F
文章代碼(AID): #1EIwVXXO (Web_Design)
文章代碼(AID): #1EIwVXXO (Web_Design)