У меня есть два SqlDataSources, которые относятся к двум dropdownlists. Метод PopulateDLL() позволяет мне заполнить первый раскрывающийся список городами и фильтровать второй раскрывающийся список с названиями улиц, относящихся к этому городу, однако некоторые названия улиц также имеют имена зданий (например, мэрия, главная улица), что я пытаюсь do - это название здания с соответствующими названиями улиц. Я исследовал это и получил кодПопытка объединить два поля в DropDownList
dt.Columns.Add("StreetName + BuildingName"); ddl_FilteredLocation.DataTextField = "BuildingName"; //ddl_FilteredLocation.DataValueField = ""; ddl_FilteredLocation.DataBind();
Однако он по-прежнему вызывает только название улицы, я пробовал разные варианты, а иногда только появится название здания, но без названия улицы, любая помощь с этим было бы здорово, спасибо!
<%-- DS for DDL Location --%>
<asp:SqlDataSource ID="ds_Location" EnableCaching="false" DataSourceMode="DataSet" runat="server" >
ConnectionString="<%$ ConnectionStrings:DataTown %>"
SelectCommand="SELECT DISTINCT Town FROM [DataTown].[dbo].[DT] Order By Town">
<asp:SqlDataSource>
<%-- DS for DDL Street Name, filterExpression is used so that when a user selects a town from ddl_Location the streets for that town are filtered --%>
<asp:SqlDataSource ID="ds_StreetName" EnableCaching="true" DataSourceMode="DataSet" runat="server" ConnectionString="<%$ ConnectionStrings:DataTown %>"
SelectCommand="SELECT Town, BuildingName, StreetName FROM [DataTown].[dbo].[DT] Order By StreetName" FilterExpression="Town = '{0}'">
<FilterParameters>
<asp:ControlParameter Name="Town" ControlID="fmv_AccidentHSUData$ddl_Location" PropertyName="SelectedValue" />
</FilterParameters>
</asp:SqlDataSource>
<asp:DropDownList ID="ddl_Location" AutoPostBack="true" Width="100%" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddl_FilteredLocation" DataSourceID="ds_StreetName" DataTextField="StreetName" DataValueField="StreetName" AutoPostBack="true" Width="100%" runat="server">
protected void PopulateDDL()
{
DropDownList ddl_Location = (DropDownList)fmv_DataTown.FindControl("ddl_Location");
DropDownList ddl_FilteredLocation = (DropDownList)fmv_DataTown.FindControl("ddl_FilteredLocation");
ddl_Location.Items.Clear();
DataView view = (DataView)ds_Location.Select(DataSourceSelectArguments.Empty);
DataTable dt = view.ToTable();
dt.Columns.Add("StreetName + BuildingName");
ddl_FilteredLocation.DataTextField = "BuildingName";
//ddl_FilteredLocation.DataValueField = "";
ddl_FilteredLocation.DataBind();
foreach (DataRow row in dt.Rows)
{
string Town = row["Town"].ToString();
//string StreetName = row["StreetName"].ToString();
string FullText = "";
if (Town.Length > 0)
{
FullText = Town;
}
else
{
}
ddl_Location.Items.Add(new ListItem(FullText, FullText));
}
}