2013-03-21 135 views
0

我使用Visual Studio和C#创建一个员工的值班系统,其中从“员工”表的工作人员的名字显示在数据列表。除了这个,我已经创造了ASP 2名下拉列表,从“员工”表分开的,虽然他们出现在项目模板标签,使他们旁边的工作人员的名字被动态地创建。然后用户可以从下拉菜单中选择员工的班次开始和结束时间。插入动态数据从数据列表导入数据库

我决定使用一个DataList和动态下拉菜单的工作人员表将频繁地新员工进行更新可以启动或离开,因此罗塔在未来可能包含员工的不同的号码。

<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") %>'/> 
           &nbsp;<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> 

由于这些下拉菜单都在DataList的动态创建的,我无法弄清楚如何,因为他们没有被识别,因此我不能将它们输入的参数插入其值为每个工作人员进入“花名册”表一个存储过程。

+0

我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2013-03-21 18:22:16

+0

哥们儿,你在这里分享代码......我没有许多草药想象你是什么没有...))) – 2013-03-21 18:26:04

回答

0

设置的DataListStaffIDDataKeyField

<asp:DataList ID="DataList1" runat="server" DataSourceID="StaffHours" 
DataKeyField = "StaffID" ShowFooter="False" Width="668px" 
Height="16px" CellPadding="1" CellSpacing="1""> 

这将让你处理你的数据在回发时检索,STAFFID:

for(int index = 0;index < DataList1.Items.Count;index++) 
{ 
    int staffID = (int) DataList1.DataKeys[index]; 
    DropDownList ddStartShift = (DropDownList) DataList1.Items[index].FindControl("ddStartShift"); 
    // etc. 

} 

欲了解更多的DataKeys属性:BaseDataList DataKeys Property

+0

谢谢您的答复。我已经在上面插入了你的建议,尽管当我尝试为他们插入我的数据库时创建一个参数时,staffID和下拉列表不被识别。 – Danny 2013-03-22 14:11:51

+0

当你说“为他们创建一个参数”时,你的意思是使用'SqlDataSource'吗?这是因为他们是嵌入在DataList控件:他们是从'SqlDataSource',一个由'DataList'的'DataListItem's定义不同的命名容器。你必须在代码中完成它,循环遍历DataListItems并按照我在示例中展示的方式检索值。 – 2013-03-22 14:42:18