在c#中,如何使用标签控件在dropdownlist中显示字符串数组?

时间:2017-03-25 10:50:00

标签: c# asp.net arrays

所以我通过为其分配字符串数组来使用dropdownlist控件。我在Page_Load函数中编写的代码。

protected void Page_Load(object sender, EventArgs e)
{
    string[] Gender = { "Male", "Female" };
    DdlGender.DataSource = Gender;
    DdlGender.DataBind();

    string[] Update = { "Yes", "No" };
    DdlUpdates.DataSource = Update;
    DdlUpdates.DataBind();
}

现在我想知道如何在按下按钮后在下拉列表中准确显示所选字符串?

此外,我使用此编码进行显示,当我在下拉列表中选择第二个字符串时,它只会显示第一个字符串...

protected void BtnSubmit_Click(object sender, EventArgs e)
{
    int i;

    lblGender.Text = DdlGender.Text;
    lblUpdates.Text = DdlUpdates.Text;
}

2 个答案:

答案 0 :(得分:1)

请尝试使用SelectedItem属性:

protected void BtnSubmit_Click(object sender, EventArgs e)
{ 
   lblGender.Text = DdlGender.SelectedItem.ToString();
   lblUpdates.Text =  DdlUpdates.SelectedItem.ToString();
}

答案 1 :(得分:1)

您必须将DropDownLists的数据绑定包装在IsPostBack检查中。否则,它们将在PostBack上重新创建,并且它们的选定值将丢失。这就是为什么你总是得到第一个字符串。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        string[] Gender = { "Male", "Female" };
        DdlGender.DataSource = Gender;
        DdlGender.DataBind();

        string[] Update = { "Yes", "No" };
        DdlUpdates.DataSource = Update;
        DdlUpdates.DataBind();
    }
}

您可以使用SelectedValue点击按钮上的值。

DdlUpdates.Text = DdlGender.SelectedValue;
DdlUpdates.Text = DdlUpdates.SelectedValue;

它也可以这样做:DdlGender.SelectedItem.Text,但通常DropDownList是一个KeyValue对,你使用的是值,而不是文本。这是一个例子。

<asp:DropDownList ID="DdlGender" runat="server">
    <asp:ListItem Text="I'm a male" Value="M"></asp:ListItem>
    <asp:ListItem Text="I'm a female" Value="F"></asp:ListItem>
</asp:DropDownList>

在此示例中,用户在DropDownList中获得了更多Text,但我们在数据库中不需要它,因此我们将Values设置为M和{ {1}}。