2013-07-05 89 views
0

我有這樣的GridView:GridView的列標題文字

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
     AllowPaging="True" PageSize="20" CellPadding="4" ForeColor="#333333" GridLines="None"> 
     <AlternatingRowStyle BackColor="White" /> 
     <EditRowStyle BackColor="#2461BF" /> 
     <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#EFF3FB" /> 
     <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
     <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
     <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
     <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
     <SortedDescendingHeaderStyle BackColor="#4870BE" /> 

    </asp:GridView> 

而這個ID的SqlDataSource1

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
       ConnectionString="<%$ ConnectionStrings:connectionString %>" 
       ProviderName="<%$ ConnectionStrings:connectionString.ProviderName %>" 
       SelectCommand="SELECT count(city),city FROM users GROUP by city ORDER BY count(city) DESC;" ></asp:SqlDataSource> 

而且在GridView的欄標題是count(city),city

我應該如何更改列名稱?

回答

2

更改您的SQL:

SelectCommand = "SELECT count(city) As CityCount, city FROM users ..." 

使用ALIAS

更多的靈活性。因此重命名頭CityCount,從Gridview禁用列的自動生成和手動指定:AutoGenerateColumns="False"

<asp:GridView AutoGenerateColumns="False" ID="GridView1" runat="server" 
    DataSourceID="SqlDataSource1" AllowPaging="True" PageSize="20" 
    CellPadding="4" ForeColor="#333333" GridLines="None"> 
    <asp:BoundField DataField="CityCount" HeaderText="Number of Cities" /> 
</asp:GridView> 
2

您可以更改您的Sqlselect query使用別名codingbiz提到在他的回答

OR

代碼:動態設置HEADERTEXT

GridView1.Columns[ColumnIndex].HeaderText = "Header text"; 
0

試試這個

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AllowPaging="True" 
    PageSize="20" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="false"><%--add attribute AutoGenerateColumns="false" --%> 
    <AlternatingRowStyle BackColor="White" /> 
    <EditRowStyle BackColor="#2461BF" /> 
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#EFF3FB" /> 
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
    <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
    <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
    <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
    <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
    <Columns> 
    <asp:BoundField HeaderText="Total" DataField="City_Total" /> 
    <asp:BoundField HeaderText="City" DataField="City" /> <%--Header Text => Whatever you want to display as name ;DataField=> name of field--%> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:connectionString %>" 
    ProviderName="<%$ ConnectionStrings:connectionString.ProviderName %>" SelectCommand="SELECT count(city) as City_Total,city FROM users GROUP by city ORDER BY count(city) DESC;"> 
</asp:SqlDataSource> 
0

您的SQL查詢更改爲以下

SELECT count(city) As CityCount, city FROM users GROUP by city ORDER BY count(city) DESC;" 

,然後在網格視圖中添加任何你想要的

<Columns> 
    <asp:BoundField DataField="CityCount" HeaderText="City Count" 
               SortExpression="CityCount" /> 
    <asp:BoundField DataField="city" HeaderText="City " 
               SortExpression="city" /> 
</Columns> 
0

你應該改變這樣的

SELECT count(city) AS CityCount, city FROM users GROUP by city ORDER BY count(city) DESC; 
0

查詢綁定字段與頭文字設置爲你可以改變你的SQL

CMD="SELECT Count(City) As Count_City, etc,... FROM [Tbl_Name] 
0

從我看到它的地方,你可以做到這兩點:

1)更新您的SQL查詢:

SELECT count(city) as CityCount,city as CityName FROM users GROUP by city ORDER BY count(city) DESC; 

2)使用'TemplateField'或BoundField GridView控件的功能(然後定義自己的列):

<asp:TemplateField HeaderText="Discount" HeaderText="City Count" > 
    <ItemTemplate> 
     <asp:Literal ID="CityCount" runat="server" Text='<%# Eval("CityCount").ToString() %>'></asp:Literal> 
    </ItemTemplate>      
</asp:TemplateField> 

在這種情況下,不忘了將以下屬性添加到您的GridView,否則您將有重複的列...:

AutoGenerateColumns="false"