Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示下拉列表?_C#_Asp.net_Drop Down Menu - Fatal编程技术网

C# 如何显示下拉列表?

C# 如何显示下拉列表?,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我想从我的数据库中加载一个包含可能的paise的DropDownList using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Backend; using Backend.Models; namespace Frontend_UI_Web.Administr

我想从我的数据库中加载一个包含可能的paise的DropDownList

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Backend;
using Backend.Models;

namespace Frontend_UI_Web.Administrativos
{
    public partial class Ciudad : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            PaisRepository paisRepo = new PaisRepository();
            LoadPaises(paisRepo);

            CiudadRepository ciudadRepo = new CiudadRepository();            
        }

        private void LoadPaises(PaisRepository paisRepo)
        {
            //FindAll() returns a collection IQueryable<Pais>!
            var Paises = paisRepo.FindAll().AsEnumerable();
            uiddlPais.DataSource = Paises;
            uiddlPais.DataBind();
        }

        protected void uibtnSubmit_Click(object sender, EventArgs e)
        {

        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用后端;
使用Backend.Models;
名称空间前端\u UI\u Web.adminivivos
{
公共部分类Ciudad:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
PaisRepository paisRepo=新PaisRepository();
载货台(paisRepo);
CiudadRepository ciudadRepo=新CiudadRepository();
}
专用空箱装载箱(PaisRepository paisRepo)
{
//FindAll()返回一个集合IQueryable!
var Paises=paisRepo.FindAll().AsEnumerable();
uiddlPais.DataSource=Paises;
uiddlPais.DataBind();
}
受保护的void uibtnSubmit\u单击(对象发送者,事件参数e)
{
}
}
}

有什么指导吗?如果我运行此代码,dropdownlist将加载5项,这是正确的,因为我有5对。但是名称显示不正确。

设置DataTextField和DataValueField?

听起来好像您忘记设置下拉列表的
DataValueField
DataTextField
属性。那你就可以吃你的小甜点了

您需要设置DropDownList的
DataTextField
DataValueField
属性,以便它知道应该绑定到每个
pai
对象的哪些属性

假设
Pais
看起来像

class Pais
{
    public int Id { get; set; }
    public string Name { get; set; }
    ...
}

然后您需要
DataTextField=“Name”DataValueField=“Id”

您必须指定希望显示为文本和值字段的
Paise类的哪些成员

类似这样的方法会奏效:

uiddlPais.DataSource = Paises;
uiddlPais.DataTextField = "Name";
uiddlPais.DataValueField = "Id";
uiddlPais.DataBind();

您需要设置dropdownlist的DataTextField和DataValueField属性


DataTextField显示给用户,DataValueField不显示。它在代码中工作。

确保使用
DataTextField
DataValueField
属性定义了要将
DropDownList
绑定到的属性

<asp:DropDownList ID="uiddlPais" runat="server"
    DataTextField="TheFieldWithTheTextYouWantToDisplay"
    DataValueField="TheFieldWithTheValueYouWantAttached" />

你能定义“Paise”吗?如果你在标签中包含“asp.net”,你的问题会得到回答者更多的关注。@BG100谷歌翻译说它是“国家”
protected void Page_Load(object sender, EventArgs e)   
{
    if (!IsPostBack)
    {   
        PaisRepository paisRepo = new PaisRepository();   
        LoadPaises(paisRepo);
    }
}