2013-03-21 185 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