Asp.net DropdownList:在模板中显示文本而不是值,但不进行编辑
我环顾了整个网站,但还没有看到一个像这样的问题 我有一个显示员工信息的详细视图。它有一个下拉列表,所以我可以选择员工的主管。它存储主管的ID号。下拉列表在编辑时显示主管的姓名 我现在的问题是,当没有编辑DetailsView时,ItemTemplate只显示主管的ID号。我想让你看看主管的名字。关于如何做到这一点有什么建议吗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
<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函数获取另一个主管姓名标签。您是否再次提交相同的问题?