GridView,Repeater增加自动序号列
发布日期:2021-08-14 17:36:16 浏览次数:10 分类:技术文章

本文共 3906 字,大约阅读时间需要 13 分钟。

有三种实现的方式,

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

<Columns>         

<asp:TemplateField HeaderText="序号" InsertVisible="False">

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

</Columns>

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

            <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();
             }
         }

第四种方法

  双击GridView的OnRowDataBound事件;

在后台的GridView1_RowDataBound()方法添加代码,最后代码如下所示:
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //如果是绑定数据行 //清清月儿 
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            鼠标经过时,行背景色变
            //e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
            鼠标移出时,行背景色变
            //e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

            当有编辑列时,避免出错,要加的RowState判断

            //if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
            //{
            //    ((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
            //}

        }

        if (e.Row.RowIndex != -1)
        {
            int id = e.Row.RowIndex + 1;
            e.Row.Cells[0].Text = id.ToString();
        }

    }

注意这时最好把前台的第一列的表头该为“编号”,因为以前的第一列被“吃掉”了。

<asp:GridView ID="GridView1" runat="server" CellPadding="3" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
                        OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" OnRowDataBound="GridView1_RowDataBound">
                        <FooterStyle BackColor="White" ForeColor="#000066" />
                        <Columns>
                            <asp:BoundField DataField="身份证号码" HeaderText="编号" ReadOnly="True" />
                            <asp:BoundField DataField="姓名" HeaderText="用户姓名" />
                            <asp:BoundField DataField="员工性别" HeaderText="性别" />
                            <asp:BoundField DataField="家庭住址" HeaderText="家庭住址" />
                            <asp:CommandField HeaderText="选择" ShowSelectButton="True" />
                            <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
                            <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
                        </Columns>
                        <RowStyle ForeColor="#000066" />
                        <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
                        <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
                    </asp:GridView>

这里基本上介绍的已经够用了,详细试试;

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>

赠送一个小技巧:

Repeater数据为空时提示暂无数据

<FooterTemplate>  

       
<asp:Label ID="lblEmpty" Text="暂无数据" runat="server"  Visible='<%#bool.Parse((Repeater1.Items.Count==0).ToString())%>'></asp:Label> 
                
  </FooterTemplate>

转载于:https://www.cnblogs.com/bobo41/p/3392371.html

转载地址:https://blog.csdn.net/weixin_30731287/article/details/95553116 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SMO算法精解
下一篇:Map集合的两种取出方式

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年11月11日 18时02分23秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

java中单列集合思维导图_Java基础——List集合整理(脑图,源码,面试题) 2019-06-16
JAVA kafka 新建主题_将自定义Java对象发送到Kafka主题 2019-06-16
java endian_java – 将小Endian文件转换成大Endian 2019-06-16
salsa算法matlab代码,[搜索引擎原理]SALSA链接分析算法 2019-06-16
php字符串 安装 0分组,php – 基于公共字符串对数组项进行分组 2019-06-16
php简便定义数组,用php定义一个数组最简单的方法 2019-06-16
java 日期在周中的数值_java日期转换提供了一周中的一天 2019-06-16
java实现通过绑定邮箱找回密码功能_Java实现邮箱找回密码实例代码 2019-06-16
php一句话图片木马怎么运行,php图片木马怎么运行 2019-06-16
双亲委托类加载机制_浅析tomcat7类加载机制及初始化流程 2019-06-16
otrs安装mysql_Centos6.4安装OTRS必须成功版! 2019-06-16
c++ java setobjectarrayelement_Java中JNI的使用詳解第五篇:C/C++中操作Java中的數組 2019-06-16
php销毁变量,PHP变量的定义、可变变量、变量引用、销毁方法 2019-06-16
vim php 配色方案,给VIM换个配色——安装主题 2019-06-16
php大于比较,类型交叉和(严格)大于/小于PHP中的比较 2019-06-16
PHP中文网为什么不能注册,用户注册验证 2019-06-16
php tab效果,jQuery_动感效果的TAB选项卡jquery 插件,效果图:动感效果的TAB选项卡 jq - phpStudy... 2019-06-16
怎么通俗理解php中的类,对es6中类的简单理解(附示例) 2019-06-16
win10不能打开php,win10双击打不开程序怎么办 2019-06-16
php spring %s,使用Spring邮件抽象 2019-06-16