zoukankan      html  css  js  c++  java
  • GridView,Repeater增加自动序号列

    Repeater,DataList里面用 <%#Container.ItemIndex+1%> 
    GridView用<%# Container.DataItemIndex+1 %>

    第一种方式,直接在Aspx页面GridView模板列中.这种的缺点是到第二页分页时又重新开始了.

                <asp:TemplateField HeaderText="序号" InsertVisible="False">
                  <ItemStyle HorizontalAlign="Center" />
                  <HeaderStyle HorizontalAlign="Center" Width="5%" />
                 <ItemTemplate>
                  <%#Container.DataItemIndex+1%>
                </ItemTemplate>
                </asp:TemplateField>


    第二种方式分页时进行了计算,这样会累计向下加.

                <asp:TemplateField HeaderText="序号" InsertVisible="False">
                  <ItemStyle HorizontalAlign="Center" />
                  <HeaderStyle HorizontalAlign="Center" Width="5%" />
                 <ItemTemplate>
                     <asp:Label ID="Label2" runat="server" Text='<%# this.MyListGridView.PageIndex * this.MyListGridView.PageSize + this.MyListGridView.Rows.Count + 1%>'/>
                </ItemTemplate>
                </asp:TemplateField>



    还有一种方式放在cs代码中,和第二种相似.

        <asp:BoundField HeaderText="序号" >
                  <ItemStyle HorizontalAlign="Center" />
                  <HeaderStyle HorizontalAlign="Center" Width="5%" />
              </asp:BoundField>


            protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowIndex != -1)
                {
                    int indexID = this.myGridView.PageIndex * this.myGridView.PageSize + e.Row.RowIndex + 1;
                     e.Row.Cells[0].Text = indexID.ToString();
                 }
             }

    Repeater自身就带有这个获取当前行号的属性,而无需程序员绑定这个行号,Container.ItemIndex 就可以获取了,见下示例:

    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            行号:<%#Container.ItemIndex %>
        </ItemTemplate>
    </asp:Repeater>

    如果上面的示例中,Repeater已经绑定了数据,并且数据的至少为一笔记录,那么行号就会显示出来,行号从零开始,如果想改为从1开始,那么可以将以上的代码改为Container.ItemIndex + 1,见如下示例:

    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            行号:<%#Container.ItemIndex + 1 %>
        </ItemTemplate>
    </asp:Repeater>

    就可以了。

    <asp:Repeater ID="Repeater1" runat="server">
       
    <ItemTemplate>
           
    <%# Container.ItemIndex + 1%>
           
    <%# (Container as RepeaterItem).ItemIndex + 1%>
       
    </ItemTemplate>
    </asp:Repeater>

     

    <%#(bool)(DataBinder.Eval(Container.DataItem, "State") == 1) ? "已处理":"未处理" %>

  • 相关阅读:
    20.12.21 leetcode316
    20.12.18 leetcode389
    NOIP2017退役记
    DNA序列 LOJ NOIP模拟赛 D1T1 字符串哈希
    解药还是毒药 codevs2594 状态压缩 BFS
    换教室 vijos2005 NOIP2016 D1T3 期望DP 图论最短路(雾)
    都市大飙车 UESTC 1652 概率DP
    添加括号 vijos1038 动态规划 区间DP
    一道神奇的并查集
    还有一道神奇的暴力(正解是要旋转坐标轴的)
  • 原文地址:https://www.cnblogs.com/JensonBin/p/1889561.html
Copyright © 2011-2022 走看看