C# 如何从下拉列表中的DataSource表访问其他列?
我有一个有10列的国家表。我已经将CityName作为C# 如何从下拉列表中的DataSource表访问其他列?,c#,asp.net,sql,sql-server,webforms,C#,Asp.net,Sql,Sql Server,Webforms,我有一个有10列的国家表。我已经将CityName作为DataTextField分配给我的DropDownList和Id作为DataValueField。现在,在SelectedIndexChanged上,我必须从其他列(如CityCode)中获取值。我怎样才能访问它 ddlCity.DataSource = cboxTeam_DS.Tables["MyTable"]; ddlCity.DataTextField = "CityName"; ddlCity.DataValueField= "I
DataTextField
分配给我的DropDownList
和Id作为DataValueField
。现在,在SelectedIndexChanged
上,我必须从其他列(如CityCode)中获取值。我怎样才能访问它
ddlCity.DataSource = cboxTeam_DS.Tables["MyTable"];
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField= "Id";
ddlCity.DataBind();
在
SelectedIndexChanged
方法中,如何访问CityCode列值?您没有将CityCode
列绑定到下拉列表中。下拉列表
的数据保存在视图状态
中,不知道其他列。在桌面上,我们可以从组合框(下拉菜单)中获取对象,但在asp.net中,我们不能。这可能是为了使ViewState尽可能小
您可以选择其中一种方法来完成所需的任务
- 您可以获取
并发送数据库调用以检索id
中的SelectedIndexChanged
CityCode
- 您可以将id\u CityCode等两列组合在一起,生成
列,然后提取所需内容值
- 您没有将
CityCode
列绑定到下拉列表。下拉列表
的数据保存在视图状态
中,不知道其他列。在桌面上,我们可以从组合框(下拉菜单)中获取对象,但在asp.net中,我们不能。这可能是为了使ViewState尽可能小
您可以选择其中一种方法来完成所需的任务
- 您可以获取
并发送数据库调用以检索id
中的SelectedIndexChanged
CityCode
- 您可以将id\u CityCode等两列组合在一起,生成
列,然后提取所需内容值
int CityId = (int)ddlCity.SelectedValue;
DataTable dt = cboxTeam_DS.Tables["MyTable"];
string CityCode = (from DataRow dr in dt.Rows
where (int)dr["Id"] == CityId
select (string)dr["CityCode"]).FirstOrDefault();
您可以直接从数据源获取
int CityId = (int)ddlCity.SelectedValue;
DataTable dt = cboxTeam_DS.Tables["MyTable"];
string CityCode = (from DataRow dr in dt.Rows
where (int)dr["Id"] == CityId
select (string)dr["CityCode"]).FirstOrDefault();
我可以向你推荐两种方法
我宁愿你去买第一个。在第一种情况下,您还可以使用javascript访问隐藏的下拉列表。我可以推荐两种方法
我宁愿你去买第一个。您还可以使用javascript访问第一种情况下的隐藏下拉列表。这是我为解决此问题而开发的解决方案,它对我非常有效 我做的第一件事就是更改了数据库查询 从 到 它返回一个表,其中包含一个名为
idCode
的额外列
由于id
是int,而CityCode
是nvarchar,因此我转换id列并获得一个额外的列,其中包含两列的值
在我的代码中,我已将idCode
列指定给我的ddlCity.DataValueField
ddlCity.DataSource = cboxTeam_DS.Tables["MyTable"];
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "idCode";
ddlCity.DataBind();
之后,我使用逗号拼接将字符串拆分为id
和code
数组
string[] strArray = this.ddlCity.SelectedValue.Split(',');
然后通过访问索引在我想使用它的地方使用它
int myId = strArray[0];
string myCode = strArray[1];
这是我为解决这个问题而开发的解决方案,对我来说非常有效 我做的第一件事就是更改了数据库查询 从 到 它返回一个表,其中包含一个名为
idCode
的额外列
由于id
是int,而CityCode
是nvarchar,因此我转换id列并获得一个额外的列,其中包含两列的值
在我的代码中,我已将idCode
列指定给我的ddlCity.DataValueField
ddlCity.DataSource = cboxTeam_DS.Tables["MyTable"];
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "idCode";
ddlCity.DataBind();
之后,我使用逗号拼接将字符串拆分为id
和code
数组
string[] strArray = this.ddlCity.SelectedValue.Split(',');
然后通过访问索引在我想使用它的地方使用它
int myId = strArray[0];
string myCode = strArray[1];
我建议使用ID,再次检索数据库中所需的字段。这样可以节省时间和精力。这就是我解决问题的方法。我建议使用ID,再次检索数据库中所需的字段。这样可以节省时间和精力。这就是我解决问题的方法。你想获得所选城市的
CityCode
吗?你可以通过传递下拉列表中选中的Id
从数据库中获得CityCode
。你想获得所选城市的CityCode
吗?你可以通过传递下拉列表中选中的Id
从数据库中获得CityCode>。你可以通过组合两列(如id\u CityCode)生成值列,然后提取所需内容。您可以通过组合两列(如id\u CityCode)生成值列,然后提取所需内容。