C#问题,我使用查询字符串将信息从一个页面传递到另一个页面。我试图在我的下拉列表中添加一个值。我正在努力弄清楚如何去做。我尝试了多种方法,但认为if else语句可以解决我的问题。它没有。任何人都可以帮我添加一个值到我的列表中吗?
using System;
System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DropDownList1.Items.Add("Concert-Guns N Roses");
DropDownList1.Items.Add("Concert-Katy Perry");
DropDownList1.Items.Add("Performance-Blue Man Group");
DropDownList1.Items.Add("Comic-Howie Mandel");
DropDownList1.Items.Add("Circus-Barnum and Bailey");
}
}
protected void BtnViewCart_Click(object sender, EventArgs e)
{
{
if (DropDownList1.SelectedIndex == 0)
{
DropDownList1.SelectedValue = "75.00";
}
else if (DropDownList1.SelectedIndex == 1)
{
DropDownList1.SelectedValue = "65.00";
}
else if (DropDownList1.SelectedIndex == 2)
{
DropDownList1.SelectedValue = "40.00";
}
else if (DropDownList1.SelectedIndex == 3)
{
DropDownList1.SelectedValue = "28.00";
}
else if (DropDownList1.SelectedIndex == 4)
{
DropDownList1.SelectedValue = "25.00";
}
decimal gnrTicket = Convert.ToDecimal(DropDownList1.SelectedValue[0]);
decimal kpTicket = Convert.ToDecimal(DropDownList1.SelectedValue[1]);
decimal bmgTicket = Convert.ToDecimal(DropDownList1.SelectedValue[2]);
decimal hmTicket = Convert.ToDecimal(DropDownList1.SelectedValue[3]);
decimal bbTicket = Convert.ToDecimal(DropDownList1.SelectedValue[4]);
}
if (DropDownList1.SelectedIndex == -1)
{
labelError.Text = "You Must Select a Show!";
}
else
{
string url = "Output.aspx?";
url += "Item=" + DropDownList1.SelectedItem.Text + "& <br />";
url += "Price=" + DropDownList1.SelectedItem.Value + "& <br />";
url += "Mode=" + RadioButton1.Checked.ToString();
Response.Redirect(url);
}
}
}
答案 0 :(得分:2)
作为一种好的做法,最好不要尝试在Click事件处理程序中解决此问题,并简化代码。我们可以通过了解有关ListItem类的更多信息来实现此目的。 (有关详细信息,请参阅MSDN。)
在其中一个重载中,ListItem有两个组件 - 文本值和数据值。例如:
// Create a ListItem
ListItem li = new ListItem("MyText", "MyValue");
// Add it to the DropDownList
MyDropDownList.Items.Add(li);
因此,您可以通过使用标签计数器部件分配值来节省必须在Click事件处理程序中执行所有逻辑的操作。您的值在上面的代码中是数字,但您可以稍后将它们解析为Decimal或Double数据类型。
如果您愿意,可以一步完成上述步骤。我只是扩展它来说明。例如:
DropDownList1.Items.Add("Concert-Guns N Roses", "75.00");
这有帮助吗?