作者d630200x (DOGE)
看板C_Sharp
标题[问题] 一个程式的小问题
时间Fri Mar 10 18:11:30 2017
版上前辈好,作为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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1489140694.A.0A1.html
1F:→ brian80122: 不是继承03/10 18:30
2F:推 johnpage: Public int x03/10 19:06
我加了public的结果一样耶?
※ 编辑: d630200x (111.184.18.42), 03/10/2017 20:26:59
3F:推 kyrc: 你在void B 最前面,加一段 var test = X; 先看看X的值吧03/10 21:27
※ 编辑: d630200x (111.184.18.42), 03/10/2017 22:03:29
4F:推 vi000246: 下中断点看看有没有进到x=1那行 03/10 22:04
确定有进去,在前面的switch里,X=1,但跳出去後X又等於0了
5F:推 Laluth: 你拿两个label来存OT TW 不就好了03/10 22:19
因为格式是学校固定的,我不能随意更改,Label只限定用一个
※ 编辑: d630200x (111.184.18.42), 03/10/2017 22:24:37
※ 编辑: d630200x (111.184.18.42), 03/10/2017 22:30:51
6F:→ nlmnrkni: 公开二个变数OT跟TW,在ddl2时把值存入,在ddl3时把值03/11 20:23
请问是不是我用=的话是单纯宣告而已,不能把值传回全域变数里?如果找你的说法的话语法是怎麽写?感谢
7F:→ nlmnrkni: 取出03/11 20:23
8F:→ ssccg: 你这是asp.net、然後ddl2和ddl3都是server control吧? 03/11 20:35
9F:→ ssccg: Page每次postback都是新生成的,field不会保留03/11 20:35
10F:→ ssccg: 看你要把OT、TW存在ViewState还是Session03/11 20:36
感谢,我把值存在Sesson里在取出
※ 编辑: d630200x (49.217.2.98), 03/11/2017 22:11:42