我环顾了网站,但没有看到这样的确切设置问题。
我有一个显示员工信息的DetailsView。它有一个DropDownList,所以我可以选择员工的主管。它存储了主管的ID号。 DropDownList显示主管在编辑时的名称。
我现在的问题是,当没有编辑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>
答案 0 :(得分:0)
也许只是我,但我从来没有从aspx页面进行过这种数据访问。这是我如何从背后的代码(C#)中做到这一点:
foreach (Employee x in empList)
{
ddlallemployees.Items.Add(new ListItem(x.FullNameE, x.EmployeeID.ToString()));
}
在我的情况下,我将所有员工都放入EmployeeList对象,然后浏览这些对象,将它们附加到员工下拉列表,将每个条目的.Text分配给员工的全名,以及.Value到员工的EmployeeID。
这会在下拉列表中填充可读的名称,但仍然具有相关的ID(仅向用户显示)。
然后当用户做出选择时,我可以说ddlallemployees.SelectedItem.Value来获取他们选择的人的ID。
如果您没有可比较的员工对象和employeeList对象系统,您仍然可以通过使用数据读取器运行查询并说出while(reader.Read())然后将每个结果附加到通过上面的代码下拉列表。
答案 1 :(得分:0)
在模板项目中使用EVAL功能获取另一个主管名称标签。