[問題] 一個程式的小問題

看板C_Sharp (C#)作者 (DOGE)時間8年前 (2017/03/10 18:11), 8年前編輯推噓4(406)
留言10則, 7人參與, 最新討論串1/1
版上前輩好,作為C#新手碰到了一點小問題 使用的程式是VS2015 程式大概是這樣 DropDownList的Item.text有ABCD INT X protected void A ...... switch (DropDownList.SelectItem.text) { case "0": Label 1.text="GG" X=1; break; } protected void B ...... switch (Label 1.text) { case "GG": Label 2.text=X; break; } 大概這這樣的,因為兩個事件不一樣,不能寫在同一個CLASS裡,因為A的條件會影響到B ,我這樣寫最終Label 2的輸出是0,那要如何讓X=1呢? 另外這樣算不算是繼承?我還不太明白繼承的意思 ------------------------------------------------------------------------------ 我鐵上完整的程式碼好了 public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } double TW, OT; protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { DropDownList2.Items.Clear(); switch (DropDownList1.SelectedValue) { case "0": DropDownList2.Items.Add(new ListItem("==請先選擇幣別==", "0")); DropDownList2.Enabled = false; break; case "1": DropDownList2.Items.Add(new ListItem("==請先選擇幣別==", "0")); DropDownList2.Items.Add(new ListItem("人民幣", "人民幣")); DropDownList2.Items.Add(new ListItem("日幣", "日幣")); DropDownList2.Items.Add(new ListItem("新加坡幣", "新加坡幣")); DropDownList2.Enabled = true; break; } } protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) { DropDownList3.Items.Clear(); switch (DropDownList2.SelectedValue) { case "0": DropDownList3.Items.Add(new ListItem("==請先選擇轉換方式==", "0")); DropDownList3.Enabled = false; break; case "人民幣": DropDownList3.Items.Add(new ListItem("==請先選擇轉換方式==", "0")); DropDownList3.Items.Add(new ListItem("台幣轉外幣", "1")); DropDownList3.Items.Add(new ListItem("外幣轉台幣", "2")); OT = 0.20; TW = 4.95; DropDownList3.Enabled = true; break; case "日幣": DropDownList3.Items.Add(new ListItem("==請先選擇轉換方式==", "0")); DropDownList3.Items.Add(new ListItem("台幣轉外幣", "1")); DropDownList3.Items.Add(new ListItem("外幣轉台幣", "2")); OT = 3.51; TW = 0.28; DropDownList3.Enabled = true; break; case "新加坡幣": DropDownList3.Items.Add(new ListItem("==請先選擇轉換方式==", "0")); DropDownList3.Items.Add(new ListItem("台幣轉外幣", "1")); DropDownList3.Items.Add(new ListItem("外幣轉台幣", "2")); OT = 0.04; TW = 23.24; DropDownList3.Enabled = true; break; } } protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e) { switch (DropDownList3.SelectedValue) { case "0": break; case "1": Label1.Text = "1元台幣=" + OT + string.Format(DropDownList2.SelectedItem.Text); break; case "2": Label1.Text = "1元" + string.Format(DropDownList2.SelectedItem.Text) + "=" + TW + "台幣"; break; } } } 主要是我想要呼叫我在DropDownList2裡OT、TW的值,到我的DropDownList3的OT、TW裡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.184.18.42 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1489140694.A.0A1.html

03/10 18:30, , 1F
不是繼承
03/10 18:30, 1F

03/10 19:06, , 2F
Public int x
03/10 19:06, 2F
我加了public的結果一樣耶? ※ 編輯: d630200x (111.184.18.42), 03/10/2017 20:26:59

03/10 21:27, , 3F
你在void B 最前面,加一段 var test = X; 先看看X的值吧
03/10 21:27, 3F
※ 編輯: d630200x (111.184.18.42), 03/10/2017 22:03:29

03/10 22:04, , 4F
下中斷點看看有沒有進到x=1那行
03/10 22:04, 4F
確定有進去,在前面的switch裡,X=1,但跳出去後X又等於0了

03/10 22:19, , 5F
你拿兩個label來存OT TW 不就好了
03/10 22:19, 5F
因為格式是學校固定的,我不能隨意更改,Label只限定用一個 ※ 編輯: d630200x (111.184.18.42), 03/10/2017 22:24:37 ※ 編輯: d630200x (111.184.18.42), 03/10/2017 22:30:51

03/11 20:23, , 6F
公開二個變數OT跟TW,在ddl2時把值存入,在ddl3時把值
03/11 20:23, 6F
請問是不是我用=的話是單純宣告而已,不能把值傳回全域變數裡?如果找你的說法的話語法是怎麼寫?感謝

03/11 20:23, , 7F
取出
03/11 20:23, 7F

03/11 20:35, , 8F
你這是asp.net、然後ddl2和ddl3都是server control吧?
03/11 20:35, 8F

03/11 20:35, , 9F
Page每次postback都是新生成的,field不會保留
03/11 20:35, 9F

03/11 20:36, , 10F
看你要把OT、TW存在ViewState還是Session
03/11 20:36, 10F
感謝,我把值存在Sesson裡在取出 ※ 編輯: d630200x (49.217.2.98), 03/11/2017 22:11:42
文章代碼(AID): #1OmdlM2X (C_Sharp)
文章代碼(AID): #1OmdlM2X (C_Sharp)