所以我通过为其分配字符串数组来使用下拉列表控件。我在函数中编写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;
}
DropDownList 的数据绑定包装在IsPostBack
检查中。否则,它们将在回发时重新创建,并且其所选值将丢失。这就是为什么你总是得到第一个字符串。
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 是一个键值对,您可以在其中使用值而不是文本。这里有一个例子。
<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
和 F
。
尝试改用SelectedItem
属性:
protected void BtnSubmit_Click(object sender, EventArgs e)
{
lblGender.Text = DdlGender.SelectedItem.ToString();
lblUpdates.Text = DdlUpdates.SelectedItem.ToString();
}