Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 通过LINQ查询的Dropdownlist数据源_C#_Asp.net_Linq_Entity Framework - Fatal编程技术网

C# 通过LINQ查询的Dropdownlist数据源

C# 通过LINQ查询的Dropdownlist数据源,c#,asp.net,linq,entity-framework,C#,Asp.net,Linq,Entity Framework,我不知道当ddlMedicalName的值更改时为什么不填充ddlCity。我只是尝试构建函数“ddlMedicalName\u SelectedIndexChanged”,这样,如果有人从dropdownlist ddlMedicalName中选择任何MedicalName,则应根据ddlMedicalName的selectedvalue填充另一个dropdownlist“ddlCity”数据源 代码隐藏: protected void ddlMedicalName_OnSelectedI

我不知道当ddlMedicalName的值更改时为什么不填充ddlCity。我只是尝试构建函数“ddlMedicalName\u SelectedIndexChanged”,这样,如果有人从dropdownlist ddlMedicalName中选择任何MedicalName,则应根据ddlMedicalName的selectedvalue填充另一个dropdownlist“ddlCity”数据源

代码隐藏:

  protected void ddlMedicalName_OnSelectedIndexChanged(object sender, EventArgs e)
    {
        //string entityString = ConfigurationManager.ConnectionStrings["medicaldb2Entities"].ConnectionString;
        //EntityDataSource eds = new EntityDataSource();
        using (Entity.medicaldbEntities context = new Entity.medicaldbEntities())
        {
            string selected = ddlMedicalName.SelectedItem.Value;
            int slct = Convert.ToInt32(selected);

            var orders = from order in context.Cities
                         where order.CityID == slct
                         select new { order.CityID, order.CityName };

            var lstSrc = orders.ToList();

            ddlCity.DataSource = lstSrc;
            ddlCity.DataTextField = "CityName";
            ddlCity.DataValueField = "CityID";

            ddlCity.DataBind();
        }

    }
ASPX:


这就是我得到的错误:

如果我将其更改为:

List<string> lstSrc = orders.ToList();
List lstSrc=orders.ToList();

它不会抛出任何错误,但也不起作用(ddlCity未填充)。

您准备了
查询,但从未实际使用过它

var orders = from order in context.Cities
             where order.CityID == slct
             select order.CityName;

List<Entity.City> lstSrc = orders.ToList();
它将返回带有两个属性的匿名类型:
CityID
CityName
。但是因为它是匿名类型,所以在声明
列表
变量时必须使用
var

var lstSrc = orders.ToList();
或者直接将其分配给
数据源
属性:

ddlCity.DataSource = orders.ToList();

您准备了
查询
,但从未实际使用过它

var orders = from order in context.Cities
             where order.CityID == slct
             select order.CityName;

List<Entity.City> lstSrc = orders.ToList();
它将返回带有两个属性的匿名类型:
CityID
CityName
。但是因为它是匿名类型,所以在声明
列表
变量时必须使用
var

var lstSrc = orders.ToList();
或者直接将其分配给
数据源
属性:

ddlCity.DataSource = orders.ToList();
选中Autopostback=“true”


选中Autopostback=“true”




我的问题非常具体;在master.site的主表单标签上有一个警告。表单的结束标记已经存在,但由于一些不允许的控件或标记,它没有被检测到,也没有呈现,这导致了奇怪的dropdownlist问题。然后我编辑了我的html和主表单标签,去掉了“Form1没有结束标签”的警告,一切又正常了。

我的问题非常具体;在master.site的主表单标签上有一个警告。表单的结束标记已经存在,但由于一些不允许的控件或标记,它没有被检测到,也没有呈现,这导致了奇怪的dropdownlist问题。然后,我编辑了我的html和主表单标记,去掉了“Form1没有结束标记”的警告,一切又正常了。

谢谢你的回复,你说得对,但仍然不起作用。我已经编辑了这个问题。你能看一下吗?我试过了,但没有机会,城市没有更新。它是空的当尝试调试应用程序时,您在
lstSrc
中是否有任何结果?我猜没有调用函数“ddlMedicalName\u SelectedIndexChanged”,我已经设置了一个断点,并且我已经更改了ddlMedicalName的值,没有发生任何事情。并且lstSrc发现您的
onselectedindexchanged
属性声明中的ems uninitializedCasing不正确。必须在选择索引时更改
。感谢您的回复,您是对的,但它仍然不起作用。我已经编辑了这个问题。你能看一下吗?我试过了,但没有机会,城市没有更新。它是空的当尝试调试应用程序时,您在
lstSrc
中是否有任何结果?我猜没有调用函数“ddlMedicalName\u SelectedIndexChanged”,我已经设置了一个断点,并且我已经更改了ddlMedicalName的值,没有发生任何事情。并且lstSrc发现您的
onselectedindexchanged
属性声明中的ems uninitializedCasing不正确。必须在选定的索引上更改
。不幸的是,它仍然不起作用。可能是由于aspx sidecheck autopostback=true在ddlMedicalName中的配置错误。是的,现在ddlMedicalName_OnSelectedIndexChanged函数被调用,但我想,由于autopostback,每当我选择一个下拉值时,它都会被发布到服务器,并且所有下拉值都设置为默认值。我现在正试图解决这个问题,不幸的是,它仍然不起作用。可能是由于aspx sidecheck autopostback=true在ddlMedicalName中的配置错误。是的,现在ddlMedicalName_OnSelectedIndexChanged函数被调用,但我想,由于autopostback,每当我选择一个下拉值时,它都会被发布到服务器,并且所有下拉值都设置为默认值。我现在正试图解决这个问题,您是否已确保调用ddlMedicalName\u SelectedIndexChanged-方法?此外,关于错误,您应该将select子句更改为仅包含顺序(完整对象),因为当前您正在选择单个属性(碰巧是字符串),因此无法将结果保存在字符串列表中。是的,不确定是否调用它,我已将SelectedIndex更改为OnSelectedIndex,但没有更改way@bobblez我还按照您的建议更新了代码,我更新了问题,我正在选择CityName和CityId您是否确保调用了ddlMedicalName\u SelectedIndexChanged-方法?此外,关于错误,您应该将select子句更改为仅包含顺序(完整对象),因为当前您正在选择单个属性(碰巧是字符串),因此无法将结果保存在字符串列表中。是的,不确定是否调用它,我已将SelectedIndex更改为OnSelectedIndex,但没有更改way@bobblez我也按照你的建议更新了代码,我更新了问题,我选择了CityName和CityID
<asp:Dropdownlist id="ddlMedicalName" runat="Server" Autopostback="true" ></Dropdownlist>