所以我通过为其分配字符串数组来使用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;
}
答案 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}}。