Подтвердить что ты не робот

Объединение двух полей в DataTextField. Это возможно?

У меня есть набор данных, который я привязываю к списку. Однако я хочу объединить два поля для создания DataTextField. Возможно ли это, или мне придется проходить через строки данных?

lstAddressDropdown.DataSource = dsAddress;
lstAddressDropdown.DataTextField = "StreetAddress" + "Place";
lstAddressDropdown.DataBind();
lstAddressDropdown.Items.Insert(0, new ListItem("Please select"));

Стоит отметить, что набор данных возвращается из веб-службы, поэтому я не могу изменить какую-либо хранимую процедуру для объединения столбцов.

4b9b3361

Ответ 1

Вы можете добавить дополнительный столбец к datatable, который является вычисленным столбцом, и использовать его в качестве поля datatext (docs: привязка к нескольким полям).

Итак, для вашего примера выше вы можете сделать что-то вроде этого:

dsAddress.Tables[0].Columns.Add("StreetAndPlace",typeof(string),"StreetAddress + Place");
lstAddressDropdown.DataSource = dsAddress;
lstAddressDropdown.DataTextField = "StreetAndPlace";
lstAddressDropdown.DataBind();
lstAddressDropdown.Items.Insert(0, new ListItem("Please select"));

Чтобы добавить пробел между StreetAddress и Place, замените строку выражения, показанную выше, на "StreetAddress + ' ' + Place"

Ответ 2

Измените свой запрос согласно вашему требованию в Oracle

SELECT
'<B>'||SHORTNAME||'</B><br/>('||DEPARTMENT||')' AS USERNAME
FROM TABLE

В приведенном выше запросе имя отобразится жирным шрифтом, и под ним отобразится отдел как:

<b>Mr. Jagdeep Mankotia</b><br>
(Web Application Development)

Ответ 3

Я знаю, что уже был дан ответ, но я думаю, что есть более простой способ решить эту проблему.

Измените команду выбора и объедините 2 DataTextField, которые хотите отобразить.

DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table";

RadioButtonList1.DataTextField = "Column1And2";

Надеюсь, это поможет, Может быть, это не лучший способ, но я думаю, что это намного легче понять.

Ответ 4

Вам больше не нужно писать циклы с помощью linq.

  • Создайте класс для возврата двух полей.

    открытый частичный класс EmployeeDropdownInfo {   public int person_id {get; задавать; }   public string employee_name {get; задавать; } }

  • Получите ваши данные и используйте linq для фильтрации и возврата того, что вам нужно.

    Список отправителей = (из t в dc.sp_GetEmployees() выберите новый EmployeeDropdownInfo() {   person_id = t.person_id,   employee_name = t.first_name + "" + t.last_name }) ToList();.

    EmployeeDropdownInfo firstEntry2 = new EmployeeDropdownInfo() {person_id = 0, employee_name = "- Выбрать сотрудника -" }; requestors.Insert(0, firstEntry2); ddlRequestor.DataSource = requestors; ddlRequestor.DataTextField = "employee_name"; ddlRequestor.DataValueField = "person_id"; ddlRequestor.DataBind();

Таким образом, вам не нужно менять proc и выпадающие меню, для этого требуется только два значения.