asp.net 将下拉列表与硬编码值绑定

lymgl2op  于 2022-12-27  发布在  .NET
关注(0)|答案(4)|浏览(190)

我有一个硬编码值的下拉列表:

<asp:DropDownList ID="BulletinTypeDropDown" runat="server">
    <asp:ListItem Selected="True" Text="--Select--" Value="--Select--"></asp:ListItem>
    <asp:ListItem Text="News" Value="News"></asp:ListItem>
    <asp:ListItem Text="report" Value="report"></asp:ListItem>
    <asp:ListItem Text="System" Value="System"></asp:ListItem>
    <asp:ListItem Text="Reminder" Value="Reminder"></asp:ListItem>
</asp:DropDownList>

我想使用此选项插入和编辑数据库中的值。例如,当添加记录时,用户选择“report”,“report”将被插入数据库中。然后,如果用户编辑页面,因为数据库中的值为“report”,则下拉列表必须显示“report”已选中。但我可以成功地将值存储在数据库中,但我不能“在编辑页面时无法检索所选页面。我正在使用实体框架,所以,我尝试了很多方法,但无法在编辑页面中获取值。以下是我尝试的方法。
DropDown.SelectedValue = bulList.intype.ToString();//intype是我从DB获得的值,它返回当前值,但在DropDown. selectedvalue中传递空值。
有人能帮我什么是其他方法,我可以工作,以获得我的下拉列表中的值。
谢啦,谢啦

643ylb08

643ylb081#

您必须在下拉列表中找到文本并将selected属性设置为true示例:

//pass the string you want to set selected to true --> assuming in your case bulList.intype.ToString()
BulletinTypeDropDown.Items.FindByText(bulList.intype.ToString()).Selected = true;

您也可以使用FindByValue执行类似操作。有关详细信息,请访问:http://forums.asp.net/t/1004541.aspx/1

laximzn5

laximzn52#

BulletinTypeDropDown.SelectedValue = valueFromDb;
polhcujo

polhcujo3#

所以下拉列表保持默认值,如果是这样,在你的代码中找到一个绑定方法,可能在页面加载中。
否则,如果bulList.intype返回值,我认为下拉列表不可能拒绝显示所选值。可以检查返回值中的空格。尝试以下操作:

string s =  = bulList.intype.ToString().Trim();
DropDown.SelectedValue = s;
ljsrvy3e

ljsrvy3e4#

这里是可能为你工作的解决方案。所以创建你的下拉列表。

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" 
        onload="DropDownList1_Load" >
    </asp:DropDownList>

protected void DropDownList1_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        List<string> DDLlist = new List<string>();
        DDLlist.Add("Report");
        DDLlist.Add("News");
        DropDownList1.DataSource = DDLlist;
        DropDownList1.SelectedValue = "Report";
        DropDownList1.DataBind();
    }

您可以添加到DDL列表以动态添加新项目。

相关问题