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) ? "已处理":"未处理" %>

  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/JensonBin/p/1889561.html
Copyright © 2011-2022 走看看