C# 通过LINQ查询的Dropdownlist数据源
我不知道当ddlMedicalName的值更改时为什么不填充ddlCity。我只是尝试构建函数“ddlMedicalName\u SelectedIndexChanged”,这样,如果有人从dropdownlist ddlMedicalName中选择任何MedicalName,则应根据ddlMedicalName的selectedvalue填充另一个dropdownlist“ddlCity”数据源 代码隐藏: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
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>