我需要向用户显示网格在应用程序中具有每种活动状态的企业数量。我已经有了查询,但显然它返回了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>
但是我不能使用那种格式,列必须是每个状态。
答案 0 :(得分:0)
您可以在后端SQL中转动查询结果,或者如果它变得复杂 - 将您的2列数据检索到.NET代码并构建DataTable programmaticaly(根据数量创建新DataTable中的列数)结果中的行,根据“name”字段命名列,并根据“statusTotal”字段用一行数据填充它。
然后在您的obout网格集AutoGenerateColumns="True"
中,不要指定<Columns></Columns>
。这样,网格将根据数据源生成列。