C#为我的列表项添加值

时间:2017-10-07 00:12:09

标签: c# webforms

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);
        }
    }
}

1 个答案:

答案 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");

这有帮助吗?