0

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

PS 我正在使用 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>

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

4

1 回答 1

0

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

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

于 2013-08-13T17:20:31.373 回答