Asp.Net SqlDataSource связывает два столбца в один столбец в ASPX
У меня есть <asp:SqlDataSource
подключен к базе данных с помощью строки подключения, однако я хотел объединить 2 столбца, чтобы создать 1 столбец, например:
Column: First Name
Column: Last Name
Создает:
Column: Full Name
Мне было трудно найти, как это сделать в aspx, но действительно легко найти это, чтобы сделать это на странице напрямую.
Мой источник данных Sql был следующим:
<asp:SqlDataSource ID="databaseWork" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString%>" SelectCommand="SELECT [FirstName],[LastName] FROM [People]">
</asp:SqlDataSource>
Я хотел, чтобы они были в выпадающем списке. Мой выпадающий список был:
<asp:DropDownList ID="ddlPeople" runat="server" AutoPostBack="True" DataSourceID="databaseWork" DataTextField= 'FirstName' DataValueField="ID">
</asp:DropDownList>
Независимо от того, что я делал, казалось, ничего не получалось, я ходил на несколько сайтов и пробовал много вещей, однако сам понял, что могу просто изменить SQL-запрос и создать собственный столбец вместо объединения полей вместе, когда я их использую.
Я добавляю ответ на свой вопрос, так как считаю, что он будет очень полезен для тех, кто хочет того же результата.
2 ответа
То, что я сделал, оказалось очень простым, чтобы получить 1 столбец, в котором было создано 2 или более столбцов.
Мой SqlDataSource выглядит следующим образом:
<asp:SqlDataSource ID="databaseWork" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString%>" SelectCommand="SELECT [FirstName] + ' ' + [LastName], AS [FullName] FROM [People]">
</asp:SqlDataSource>
Теперь при использовании его в качестве столбца в списках DropDown или в виде сетки вы можете просто вызвать новый созданный нами столбец.
Пример выпадающего списка:
<asp:DropDownList ID="ddlPeople" runat="server" AutoPostBack="True" DataSourceID="databaseWork" DataTextField= 'FullName' DataValueField="ID">
Пример таблицы с колонкой:
<asp:GridView
ID="gridPeople"
runat="server"
DataSourceID="databaseWork"
AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False" PageSize="50">
<Columns>
<asp:BoundField DataField="FullName" HeaderText="Full Name Column" SortExpression="FullName" />
</Columns>
</asp:GridView>
Вместо того, чтобы пытаться добавить два столбца для создания одного в раскрывающемся списке или в виде сетки на лету, гораздо удобнее и проще создать столбец в самом SQL-запросе и просто вызывать его. Теперь, когда мы называем FULL Name, мы получаем результат вот так:
- Джон Смит
- Ханна Монтанна
Надеюсь, это поможет вам, так как я застрял на этом и смог найти правильный ответ о том, как решить эту проблему на веб-странице напрямую, а не на стороне сервера.
SqlDataSource
<asp:SqlDataSource ID="databaseWork" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString%>" SelectCommand="SELECT [ID], [FirstName] + ' '+[LastName] AS [FullName] FROM [People]">
</asp:SqlDataSource>
Примечание запрос "SELECT [ID], [FirstName]+' '+[LastName] AS [FullName] FROM [People]"
Для выпадающего
<asp:DropDownList ID="ddlPeople" runat="server" AutoPostBack="True" DataSourceID="databaseWork" DataTextField= 'FullName' DataValueField="ID">