SelectedItem.Text 返回 selectedvalue 代替
本文关键字:代替 selectedvalue 返回 Text SelectedItem | 更新日期: 2023-09-27 18:31:16
我做了一个简单的下拉列表,其中包含硬编码的值和文本,如下所示:
<asp:DropDownList ID="MonthSelectionDrop" runat="server" EnableViewState="true" >
<asp:ListItem Value="0" Text="--please select--" />
<asp:ListItem Value="1" Text="January" />
<asp:ListItem Value="2" Text="February" />
<asp:ListItem Value="3" Text="March" />
<asp:ListItem Value="4" Text="April" />
<asp:ListItem Value="5" Text="May" />
<asp:ListItem Value="6" Text="June" />
<asp:ListItem Value="7" Text="July" />
<asp:ListItem Value="8" Text="August" />
<asp:ListItem Value="9" Text="September" />
<asp:ListItem Value="10" Text="October" />
<asp:ListItem Value="11" Text="November" />
<asp:ListItem Value="12" Text="December" />
</asp:DropDownList>
按下按钮后,它会自动清空标签,然后填充相关月份。我使用 SelectedItem.Text 来执行此操作:
MonthLabel.Text += MonthSelectionDrop.SelectedItem.Text + " ";
但是,这与我预期的不同,这返回了项目的值,而不是文本。
我在网上找不到解决方案,但我相信有人知道如何让我的标签显示为"一月"而不是"1"
编辑:根据要求,如果对其他人有用,我将添加我的Button_Click事件:
protected void SubmitSelect(object sender, EventArgs e)
{
if(CheckPresence()) //this is a function that return true at all times atm
{
MonthLabel.Text = "";
MonthLabel.Text += MonthSelectionDrop.SelectedItem.Text + " ";
MonthLabel.Text += YearTextBox.Text;
} else{
//To be implemented
}
}
试试这个:
.ASPX:
<asp:DropDownList ID="MonthSelectionDrop" runat="server"></asp:DropDownList><br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /><br />
<asp:Label ID="MonthLabel" runat="server"></asp:Label>
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MonthSelectionDrop.Items.Add(new ListItem("--please select--", "0"));
MonthSelectionDrop.Items.Add(new ListItem("January", "1"));
MonthSelectionDrop.Items.Add(new ListItem("February", "2"));
//and so on
}
}
protected void Button1_Click(object sender, EventArgs e)
{
MonthLabel.Text = MonthSelectionDrop.SelectedItem.Text;
}