Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当预订数量达到座位数时,如何在此GridView中显示活动已结束?_C#_Asp.net_Gridview_Sql Server 2008 R2 - Fatal编程技术网

C# 当预订数量达到座位数时,如何在此GridView中显示活动已结束?

C# 当预订数量达到座位数时,如何在此GridView中显示活动已结束?,c#,asp.net,gridview,sql-server-2008-r2,C#,Asp.net,Gridview,Sql Server 2008 R2,我是一个新的ASP.NET开发人员,我正在努力解决一个奇怪的问题,我不知道如何解决它。我正在开发一个基于web的小型事件管理系统。事件将在GridView中列出。现在,我正在寻找一种方法来突出这个事件,或者在它之外加上一个符号,说明当预订数量达到该事件的座位数时(关闭)。怎么做 我有以下数据库设计: Events Table: ID, Title, Description, Location, StartDateTime, EndDateTime, NumberOfSeats, IsActive

我是一个新的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>

我只需要将CSS类字段绑定到IsActive属性和CSS样式来表示信息

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

还可以设置LinkButton的
IsEnabled
属性为什么要使用LinkButton?除此之外,您如何知道预订数量是否达到座位数量?您对IsActive标志的评论使我相信,当达到座位数量时,您将该活动标记为非活动。(最好在预订时进行此操作)。使用链接按钮呈现
标记。如果您想要一个跨度,也可以使用
标签。主要技巧是添加正确的css类。
.statusTrue { background: green; }

.statusFalse { background: red; }