将状态计数设置为ASP Grid的最佳方法?

时间:2013-08-13 15:09:23

标签: c# asp.net gridview

我需要向用户显示网格在应用程序中具有每种活动状态的企业数量。我已经有了查询,但显然它返回了2列,一列是状态名,另一列是计数。我应该使用类似Pivot Columns in SQL Server的东西,并使用row [0]动态设置列名称和属性,还是有更好的方法来处理我需要做的事情?

P.S。 我正在使用Obout Grid来显示数据。

<obout:Grid ID="gridStatus" runat="server" FolderStyle="~/obout/grid/styles/style_6"
            AllowAddingRecords="False" AutoGenerateColumns="False" AllowColumnReordering="True"
            PageSize="10" ShowTotalNumberOfPages="True" AllowManualPaging="True" AllowFiltering="True"
            AllowMultiRecordSelection="false"
            PageSizeOptions="10,20,30,40,50,100,500,999">
            <Columns>
                <obout:Column DataField="name" HeaderText="Status" />
                <obout:Column DataField="statusTotal" HeaderText="Total"/>
            </Columns>
            <ScrollingSettings ScrollWidth="100%" />
            <FilteringSettings FilterLinksPosition="TopAndBottom" FilterPosition="Top" />
        </obout:Grid>

但是我不能使用那种格式,列必须是每个状态。

1 个答案:

答案 0 :(得分:0)

您可以在后端SQL中转动查询结果,或者如果它变得复杂 - 将您的2列数据检索到.NET代码并构建DataTable programmaticaly(根据数量创建新DataTable中的列数)结果中的行,根据“name”字段命名列,并根据“statusTotal”字段用一行数据填充它。

然后在您的obout网格集AutoGenerateColumns="True"中,不要指定<Columns></Columns>。这样,网格将根据数据源生成列。