1

私は新しい ASP.NET 開発者で、解決方法がわからないという少し奇妙な問題に苦しんでいます。小さな Web ベースのイベント管理システムを開発しています。イベントは GridView に一覧表示されます。現在、予約数がそのイベントの座席数に達したときに、イベントを強調表示するか、その横に (終了) という記号を付ける方法を探しています。どうやってするか?

次のデータベース設計があります。

Events Table: ID, Title, Description, Location, StartDateTime, EndDateTime, NumberOfSeats, IsActive
BookingDetails Table: BookingID, EventID, NetworkID

(IsActive は、イベントがまだアクティブであるか、非アクティブになるかを示すフラグです)

私の ASP.NET コード:

<asp:GridView ID="ListOfAvailableEvents_GrivView" runat="server" AutoGenerateColumns="False"
                    DataKeyNames="ID" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333"
                    GridLines="None" AllowPaging="True" PageSize="10">
                    <Columns>
                        <asp:TemplateField HeaderText="Title">
                            <ItemTemplate>
                                <asp:LinkButton ID="lnkTitle" runat="server" Text='<%# Eval("Title") %>' OnClick="lnkTitle_Click"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
                        <asp:BoundField DataField="Location" HeaderText="Location" SortExpression="Location" />
                        <asp:BoundField DataField="StartDateTime" HeaderText="Start Date & Time" SortExpression="StartDateTime" />
                        <asp:BoundField DataField="EndDateTime" HeaderText="End Date & Time" SortExpression="EndDateTime" />
                    </Columns>
                </asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PM_RegistrationSysDBConnectionString %>"
                    SelectCommand="SELECT     ID, Title, Description, Location, StartDateTime, EndDateTime
                            FROM         dbo.Events
                            WHERE     (IsActive = 1)
                            ORDER BY ID DESC"></asp:SqlDataSource>
4

1 に答える 1

0

CSS クラス フィールドを IsActive プロパティにバインドし、css スタイルをバインドして情報を表示します。

<asp:TemplateField HeaderText="Status">
     <ItemTemplate>
          <asp:LinkButton ID="lnkStatus" runat="server" CssClass='status<%# Eval("IsActive")%>'></asp:LinkButton>
      </ItemTemplate>
 </asp:TemplateField>

CSS:

.statusTrue { background: green; }

.statusFalse { background: red; }
于 2012-08-14T08:27:13.740 に答える