0

VBコーディングに関する知識は限られています。現在、お客様が希望する展示会イベントやブース番号を選択し、次にレンタルしたい日に予約できるシステムを作成しています。

デフォルトでは、GridViewコントロールでチェックボックスフィールドを追加できますが、1行のデータに対して1つのチェックボックスしか生成されません。

タイトルの状態として、データベース呼び出しD1、D2、D3、D4、D5、D6、およびD7のすべてのフィールドのチェックボックスを生成する方法がわかりません。それぞれ、デフォルトで値0が適用されます。ここで、すべてのフィールドにチェックボックスを設定して、顧客が予約する日を選択し、チェックされた値を取得して対応するD1-D7フィールドに盗むことができるようにします。チェックされた値は、値を0から1に更新します。

次に、チェックした値をデータベースに保存するためにどのようにコーディングする必要がありますか?default.aspxまたはdefault.aspx.vb?

または、gridviewを使用する代わりにチェックボックスを生成する他の提案はありますか?

GridViewを使用したデフォルトのビュー

ここに画像の説明を入力してください

欲しいもの

ここに画像の説明を入力してください

私のコーディング:

    <%@ Page Language="VB" MasterPageFile="~/MasterPageMember.master" AutoEventWireup="false" CodeFile="member_view_event_list.aspx.vb" Inherits="member_view_event_list" title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">



    <style type="text/css">
        .style8
        {
            width: 46px;
        }
        .style9
        {
        }
        .style10
        {
            width: 86px;
        }
    </style>



    </asp:Content>

<asp:Content ID="ContentPlaceHolder2" runat="server" 
    contentplaceholderid="ContentPlaceHolder2">



    <table width="80%">
        <tr><td class="style10">&nbsp;</td><td class="style8">&nbsp;</td><td>&nbsp;</td></tr>
        <tr><td class="style10">
            <asp:Label ID="Label1" runat="server" Text="Select Event:"></asp:Label>
        </td><td class="style8">
            <asp:DropDownList ID="ddlEventList" runat="server" 
                DataSourceID="SqlDataSourceEvent" DataTextField="eventTitle" 
                DataValueField="eventID" AutoPostBack="True" Width="200">

            </asp:DropDownList>
            <asp:SqlDataSource ID="SqlDataSourceEvent" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
                SelectCommand="SELECT DISTINCT [eventTitle], [eventID] FROM [booth_eventinfo]">
            </asp:SqlDataSource>
        </td><td>
                &nbsp;</td></tr>


        <tr><td class="style10">
            <asp:Label ID="Label2" runat="server" Text="Select Booth:"></asp:Label>
            </td><td class="style8">
            <asp:DropDownList ID="ddlBoothList" runat="server" 
                DataSourceID="SqlDataSourceBooth" DataTextField="boothAlias" 
                DataValueField="boothID" AutoPostBack="True" Width="200">

            </asp:DropDownList>
            <asp:SqlDataSource ID="SqlDataSourceBooth" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
                SelectCommand="SELECT [boothAlias], [boothID] FROM [booth_eventinfo] WHERE ([eventID] = @eventID)">
                <SelectParameters>
                    <asp:ControlParameter ControlID="ddlEventList" Name="eventID" 
                        PropertyName="SelectedValue" Type="Int32" />
                </SelectParameters>
            </asp:SqlDataSource>
            </td><td>
                 </td></tr>


        <tr><td class="style10">
            &nbsp;</td><td class="style8">
                &nbsp;</td><td>
                 &nbsp;</td></tr>


        <tr><td class="style9" colspan="3">

            <asp:GridView ID="GridViewDay" runat="server" AutoGenerateColumns="False" 
                CellPadding="4" DataSourceID="SqlDataSourceDay" ForeColor="#333333" 
                GridLines="None">
                <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
                <Columns>
                    <asp:BoundField DataField="D1" HeaderText="Day1" SortExpression="D1" />
                    <asp:BoundField DataField="D2" HeaderText="Day2" SortExpression="D2" />
                    <asp:BoundField DataField="D3" HeaderText="Day3" SortExpression="D3" />
                    <asp:BoundField DataField="D4" HeaderText="Day4" SortExpression="D4" />
                    <asp:BoundField DataField="D5" HeaderText="Day5" SortExpression="D5" />
                    <asp:BoundField DataField="D6" HeaderText="Day6" SortExpression="D6" />
                    <asp:BoundField DataField="D7" HeaderText="Day7" SortExpression="D7" />
                </Columns>
                <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSourceDay" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
                SelectCommand="SELECT [D1], [D7], [D6], [D5], [D4], [D3], [D2] FROM [booth_eventinfo] WHERE ([boothID] = @boothID)">
                <SelectParameters>
                    <asp:ControlParameter ControlID="ddlBoothList" Name="boothID" 
                        PropertyName="SelectedValue" Type="Int32" />
                </SelectParameters>
            </asp:SqlDataSource>
            </td></tr>


        <tr><td class="style10">
            &nbsp;</td><td class="style8">
                <asp:CheckBox ID="CheckBox1" runat="server" />
            </td><td>
                &nbsp;</td></tr>


</table>

</asp:Content>
4

2 に答える 2

0

これはあなたを助けるかもしれません。7 日間だけチェックボックスを配置する必要がある場合は、グリッド ビューを使用する代わりに asp:CheckBoxList を使用できます。リストが作成されたら、css を使用して水平方向にスタイルを設定し、画像に示すように外観に準拠させることができます。このリンクは、チェックボックス リストのプレビューを提供します。

質問の 2 番目の部分については、最終送信時に default.aspx.vb に保存できます。

グリッドビューを使用する場合は、7 つのテンプレート化された列を追加してデータ ソースにバインドする必要があります。

于 2012-05-08T18:23:19.857 に答える
0

必要な CheckBox コントロールごとに、「BoundField」を「TemplateField」に変更する必要があります。以下のコード例は、これを行う方法を示しています。DataField 値のバインディング式の構文に注意してください。

<asp:TemplateField HeaderText="Day1" SortExpression="D1" HeaderStyle-HorizontalAlign="Center">
  <ItemTemplate>
     <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("D1") %>' />
  </ItemTemplate>
</asp:TemplateField>
于 2012-05-08T17:43:10.793 に答える