我正在使用visual studio和c#来创建一个员工轮换系统,其中工作人员的名字来自"员工"表格显示在数据列表中。除此之外,我在asp中创建了2个下拉列表,与" Staff"表,尽管它们出现在项模板标记中,以使它们能够在人员名称旁边动态创建。然后,用户可以从下拉列表中选择员工的班次开始和结束时间。
我决定使用数据列表和动态下拉列表,因为员工表会经常更新,因为新员工可能会开始或离开,因此未来的员工可能会包含不同数量的员工。
<table class="style57" width="100%">
<tr>
<td class="style70" width="100%">
<asp:DataList ID="DataList1" runat="server" DataSourceID="StaffHours"
ShowFooter="False" Width="668px" Height="16px" CellPadding="1" CellSpacing="1"">
<ItemTemplate>
<table width="100%">
<tr>
<td class="style76" width="0%">
<asp:Label ID="lblStaffID" runat="server" bgcolor="#CCCCCC" Visible=false Text='<%# Eval("StaffID") %>'/>
</td>
<td class="style73" width="20%">
<asp:Label ID="lblFirstName" runat="server" bgcolor="#CCCCCC" Text='<%# Eval("FirstName") %>'/>
<asp:Label ID="lblLastName" runat="server" bgcolor="#CCCCCC" Text='<%# Eval("LastName") %>' />
</td>
<td width="10%">
<asp:DropDownList ID="ddStartShift" runat="Server">
<asp:ListItem Value="Start Time" Selected="True"></asp:ListItem>
<asp:ListItem Value="06:00"></asp:ListItem>
<asp:ListItem Value="07:00"></asp:ListItem>
<asp:ListItem Value="08:00"></asp:ListItem>
<asp:ListItem Value="09:00"></asp:ListItem>
<asp:ListItem Value="10:00"></asp:ListItem>
<asp:ListItem Value="11:00"></asp:ListItem>
<asp:ListItem Value="12:00"></asp:ListItem>
<asp:ListItem Value="13:00"></asp:ListItem>
<asp:ListItem Value="14:00"></asp:ListItem>
<asp:ListItem Value="15:00"></asp:ListItem>
<asp:ListItem Value="16:00"></asp:ListItem>
<asp:ListItem Value="17:00"></asp:ListItem>
<asp:ListItem Value="18:00"></asp:ListItem>
<asp:ListItem Value="19:00"></asp:ListItem>
<asp:ListItem Value="20:00"></asp:ListItem>
<asp:ListItem Value="21:00"></asp:ListItem>
<asp:ListItem Value="22:00"></asp:ListItem>
<asp:ListItem Value="23:00"></asp:ListItem>
<asp:ListItem Value="00:00"></asp:ListItem>
<asp:ListItem Value="01:00"></asp:ListItem>
<asp:ListItem Value="02:00"></asp:ListItem>
<asp:ListItem Value="03:00"></asp:ListItem>
<asp:ListItem Value="04:00"></asp:ListItem>
<asp:ListItem Value="05:00"></asp:ListItem>
</asp:DropDownList>
</td>
<td width="10%">
<asp:DropDownList ID="ddEndShift" runat="Server">
<asp:ListItem Value="End Time" Selected="True"></asp:ListItem>
<asp:ListItem Value="06:00"></asp:ListItem>
<asp:ListItem Value="07:00"></asp:ListItem>
<asp:ListItem Value="08:00"></asp:ListItem>
<asp:ListItem Value="09:00"></asp:ListItem>
<asp:ListItem Value="10:00"></asp:ListItem>
<asp:ListItem Value="11:00"></asp:ListItem>
<asp:ListItem Value="12:00"></asp:ListItem>
<asp:ListItem Value="13:00"></asp:ListItem>
<asp:ListItem Value="14:00"></asp:ListItem>
<asp:ListItem Value="15:00"></asp:ListItem>
<asp:ListItem Value="16:00"></asp:ListItem>
<asp:ListItem Value="17:00"></asp:ListItem>
<asp:ListItem Value="18:00"></asp:ListItem>
<asp:ListItem Value="19:00"></asp:ListItem>
<asp:ListItem Value="20:00"></asp:ListItem>
<asp:ListItem Value="21:00"></asp:ListItem>
<asp:ListItem Value="22:00"></asp:ListItem>
<asp:ListItem Value="23:00"></asp:ListItem>
<asp:ListItem Value="00:00"></asp:ListItem>
<asp:ListItem Value="01:00"></asp:ListItem>
<asp:ListItem Value="02:00"></asp:ListItem>
<asp:ListItem Value="03:00"></asp:ListItem>
<asp:ListItem Value="04:00"></asp:ListItem>
<asp:ListItem Value="05:00"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="StaffHours" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
SelectCommand="SELECT [StaffID], [FirstName], [LastName] FROM [Staff]">
</asp:SqlDataSource>
</td>
</tr>
</table>
由于这些下拉列表是在数据列表中动态创建的,我无法弄清楚如何将每个员工的价值插入&#34; Rota&#34;因为它们没有被识别,因此我无法将它们输入到存储过程的参数中。
答案 0 :(得分:0)
将DataKeyField
的{{1}}设置为DataList
:
StaffID
这将允许您在回发处理数据时检索StaffID:
<asp:DataList ID="DataList1" runat="server" DataSourceID="StaffHours"
DataKeyField = "StaffID" ShowFooter="False" Width="668px"
Height="16px" CellPadding="1" CellSpacing="1"">
有关DataKeys属性的更多信息:BaseDataList DataKeys Property