DropdownList: отображение текста вместо значения в шаблоне без редактирования - PullRequest
0 голосов
/ 01 марта 2012

Я осмотрел сайт, но не увидел вопрос, точно подобный этому.

У меня есть DetailsView, отображающий информацию о сотрудниках.Он имеет DropDownList, поэтому я могу выбрать руководителя сотрудника.Он хранит идентификационный номер руководителя.DropDownList показывает имя супервизора при редактировании.

Моя проблема сейчас заключается в том, что, когда DetailsView не редактируется, ItemTemplate показывает только идентификационный номер супервизора.Я хотел бы показать имя руководителя.Любые советы о том, как этого добиться?

<asp:TemplateField ID="Supervisor" HeaderText="Supervisor" SortExpression="SupervisorID">
         <EditItemTemplate>
            <asp:DropDownList ID="SupervisorID" runat="server" DataSourceID="SqlDataSource3" DataTextField="Name" DataValueField="ID" SelectedValue='<%# Bind("SupervisorID") %>'>
            </asp:DropDownList>
            <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" SelectCommand="SELECT [ID], [LastName] + ', ' + [FirstName] AS [Name] FROM [Employees] Order by LastName, FirstName"></asp:SqlDataSource>
         </EditItemTemplate>
         <ItemTemplate >
            <asp:Label Runat="server" Text='<%# Bind("SupervisorID") %>' ID="Label1"></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Возьмите другую метку имени супервизора с функцией EVAL в элементе Template.

0 голосов
/ 01 марта 2012

Может быть, это только я, но я никогда не делаю такой доступ к данным со страницы aspx. Вот как я делаю это из кода (C #):

        foreach (Employee x in empList)
        {
            ddlallemployees.Items.Add(new ListItem(x.FullNameE, x.EmployeeID.ToString()));
        }

В моем случае я помещаю всех своих сотрудников в объект EmployeeList и просто прохожу эти объекты, добавляя их в раскрывающийся список сотрудников, присваивая .Text каждой записи полное имя сотрудника и значение. идентификатор сотрудника.

Заполняет раскрывающийся список читаемыми именами, но все еще имеет связанный с ним идентификатор (просто не показывается пользователю).

Затем, когда пользователь делает выбор, я могу сказать ddlallemployees.SelectedItem.Value, чтобы получить идентификатор того, кого он выбрал.

Если у вас нет сопоставимой системы объектов сотрудников и объектов employeeList, вы все равно можете сделать это, просто запустив запрос с помощью средства чтения данных и сказав while (reader.Read ()), а затем добавив каждый результат к выпадающий список с помощью вышеуказанного кода.

...