0

私はビジュアルスタジオとc#を使用して、「スタッフ」テーブルのスタッフの名前がデータリストに表示されるスタッフ勤務表システムを作成しています。これに加えて、「スタッフ」テーブルとは別に、ASP で 2 つのドロップダウン リストを作成しましたが、これらは項目テンプレート タグに表示され、スタッフ名の横に動的に作成できるようにしています。ユーザーは、ドロップダウンからスタッフのシフトの開始時刻と終了時刻を選択できます。

スタッフテーブルは新しいスタッフが入社または退職するときに頻繁に更新されるため、データリストと動的ドロップダウンを使用することにしました。したがって、将来の勤務表には異なる数のスタッフが含まれる可能性があります。

    <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>

これらのドロップダウンはデータリストで動的に作成されるため、各スタッフメンバーの値を識別されないため、「Rota」テーブルに挿入する方法がわからないため、ストアドプロシージャのパラメーターに入力できません。

4

1 に答える 1

0

DataKeyFieldのを に設定DataListStaffIDます。

<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 プロパティ

于 2013-03-21T20:00:53.343 に答える