Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net DropdownList:在模板中显示文本而不是值,但不进行编辑_Asp.net_Drop Down Menu_Detailsview - Fatal编程技术网

Asp.net DropdownList:在模板中显示文本而不是值,但不进行编辑

Asp.net DropdownList:在模板中显示文本而不是值,但不进行编辑,asp.net,drop-down-menu,detailsview,Asp.net,Drop Down Menu,Detailsview,我环顾了整个网站,但还没有看到一个像这样的问题 我有一个显示员工信息的详细视图。它有一个下拉列表,所以我可以选择员工的主管。它存储主管的ID号。下拉列表在编辑时显示主管的姓名 我现在的问题是,当没有编辑DetailsView时,ItemTemplate只显示主管的ID号。我想让你看看主管的名字。关于如何做到这一点有什么建议吗 <asp:TemplateField ID="Supervisor" HeaderText="Supervisor" SortExpression="Supervis

我环顾了整个网站,但还没有看到一个像这样的问题

我有一个显示员工信息的详细视图。它有一个下拉列表,所以我可以选择员工的主管。它存储主管的ID号。下拉列表在编辑时显示主管的姓名

我现在的问题是,当没有编辑DetailsView时,ItemTemplate只显示主管的ID号。我想让你看看主管的名字。关于如何做到这一点有什么建议吗

<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>

也许只是我,但我从来没有从aspx页面进行过这种数据访问。下面是我如何从C背后的代码中执行此操作:

        foreach (Employee x in empList)
        {
            ddlallemployees.Items.Add(new ListItem(x.FullNameE, x.EmployeeID.ToString()));
        }
在我的例子中,我将所有员工放入EmployeeList对象中,只需浏览这些对象,将它们附加到employees下拉列表中,将每个条目的.Text分配给员工的全名,将.Value分配给员工的EmployeeID

这会用可读的名称填充下拉列表,但仍然会向用户显示其关联的ID

然后,当用户进行选择时,我可以说ddallemployees.SelectedItem.Value来获取他们选择的人的ID


如果没有可比较的employee对象和employeeList对象系统,您仍然可以通过使用数据读取器运行查询并说出whilereader.Read,然后通过上述代码将每个结果附加到下拉列表中。

在项目模板中使用EVAL函数获取另一个主管姓名标签。

您是否再次提交相同的问题?