我想在DataGrid里增加一个标识列,增示学生的名次,请问大家怎么实现?

解决方案 »

  1.   

    select 1+isnull((select count(1) from #t where 总分>a.总分),0) as 名次,学号,姓名,总分
    from #t a order by 总分 desc 
    sql语句里面写,datagrid绑定这列
      

  2.   

    你可以在html中datagrid项目里面添加
    <ItemTemplate>
    <!-- 这里是关键-->
            <SPAN>
              <%# Container.ItemIndex+1 %></SPAN>
     </ItemTemplate>
      

  3.   

    我查询的SQL语句是:
    Select Expr2,avg(CourseResult) as CourseResult From dbo.VIEW_class
    where ID=1 and Expr7=3
    group by Expr1,Expr2
      

  4.   

    aspx页面加
    <Columns>
    <asp:BoundColumn  HeaderText=" 名次"></asp:BoundColumn>
    cs代码写
    private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
    {
                     e.Item.Cells[0].Text = e.Item.ItemIndex+1
                       }

    }
      

  5.   

    最简单的办法应该是在数据库通过临时表加入一列标识列。避免页面绑定中的复杂操作(包括考虑分页,排序等)==== 
    ~~~~ 我的Blog:http://blog.csdn.net/quou2002 
      

  6.   

    在html里面加上:(其中下面的dgShow是你datagrid的名字)
    <asp:TemplateColumn HeaderText="序号">
    <HeaderStyle Wrap="False" Width="40px"></HeaderStyle>
    <ItemStyle Wrap="False" HorizontalAlign="Left"></ItemStyle>
    <ItemTemplate>
    <%# this.dgShow.CurrentPageIndex * this.dgShow.PageSize + Container.ItemIndex + 1%>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  7.   

    分页时可以这样写不过感觉很笨。。
    <Columns>
    <asp:BoundColumn  HeaderText=" 名次"></asp:BoundColumn>
    cs代码写
    private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
    {
                     e.Item.Cells[0].Text = e.Item.ItemIndex+1 + dg.CurrentPageIndex * dg.PageSize
                       }}
      

  8.   

    在html里面加上:(其中下面的dgShow是你datagrid的名字)
    <asp:TemplateColumn HeaderText="名次">
    <HeaderStyle Wrap="False" Width="40px"></HeaderStyle>
    <ItemStyle Wrap="False" HorizontalAlign="Left"></ItemStyle>
    <ItemTemplate>
    <%# this.dgShow.CurrentPageIndex * this.dgShow.PageSize + Container.ItemIndex + 1%>
    </ItemTemplate>
    </asp:TemplateColumn>