• .net Repeater知识知多少


    (一).net中使用Repeater绑定数据,并使用repeater循环出的两个值,赋给repeater中的div的value值。详细如下:

    前端.net代码:

            <div class="wytz_xmlb_nr clear">
                <asp:Repeater ID="RpBidsList" runat="server">
                    <ItemTemplate>
                        <div class="xmlb_list_tiao">
                            <span class="list_tiao_pic"><a href="#"><img src="../images/index_pic_74.jpg" width="77" height="77" /></a></span>
                            <div class="list_tiao_pic_nr">
                                <span class="list_tiao_pic_nr_bt"><%#Eval("SysBid_Title")%></span>
                                <div class="list_tiao_pic_nr_jies">
                                    <div id='p<%#Eval("SysBid_ID")%>' class="easyui-progressbar" style="153px; height:10px;"></div>
                                    当前可投金额:<%#qt.hfd_p2p.Common.Utils.ChangedStr((Decimal.Parse(Eval("SysBid_Floor").ToString())-Decimal.Parse(Eval("SysBid_Fund").ToString())).ToString())%>元</div>
    
                                    <input type="hidden" value="<%#Eval("SysBid_Fund")%>" id='fund<%#Eval("SysBid_ID")%>' />
                                    <input type="hidden" value="<%#Eval("SysBid_Floor")%>" id='floor<%#Eval("SysBid_ID")%>' />
                            </div>
                            <div class="list_tiao_bqze">
                                <span class="list_tiao_bqze_bt">本期借款总额</span>
                                <span class="list_tiao_bqze_nr"><%#qt.hfd_p2p.Common.Utils.ChangedStr(Eval("SysBid_Floor").ToString())%>元</span>
                            </div>
                            <div class="list_tiao_nhll">
                                <span class="list_tiao_bqze_bt">年化利率</span>
                                <span class="list_tiao_bqze_nr"><%#Eval("SysBid_Ratio")%>%</span>
                            </div>
                            <div class="list_tiao_tzzq">
                                <span class="list_tiao_bqze_bt">投资周期</span>
                                <span class="list_tiao_bqze_nr"><%#Eval("SysBid_CheckCycle")%><%#GetUnit((int)Eval("SysBid_CheckCycleUnit"))%></span>
                            </div>
                            <div class="list_tiao_touzi"><a href="InvestDetail.aspx?SysBid_ID=<%#Eval("SysBid_ID")%>">马上投资</a></div>
                        </div>
                    </ItemTemplate>
                </asp:Repeater>
                <div class="fenye"><div id="PageContent" runat="server"></div></div>
            </div>

    前端js代码:循环每个Itemtemplate中的id为found和floor的值,并计算出数组复制给id为p的div

        window.onload = function () {
            var values;
            $("div .xmlb_list_tiao").each(function (index, element) {
                var fund = $(element).find("input[type='hidden']").eq(0).val();
                var floor = $(element).find("input[type='hidden']").eq(1).val();
                var bidProgress = fund / floor * 100.00;
                bidProgress = Math.round(parseFloat(bidProgress) * 100) / 100;
                $(element).find("div .easyui-progressbar.progressbar").progressbar({ value: bidProgress });
                //alert(bidProgress);
            });
          }

    注意javasript中each的用法~

    展示效果如下图,计算出每条数据的进度条的值

    (二)Repeater中全选功能的实现。效果图如下:

    如上图所示:点击全选按钮列表中的checkbox全部选中,全选变为取消。点击取消按钮,列表中的复选框则均不选择。

    首先,前端aspx页面代码:

    全选按钮:

     <li><a class="all" href="javascript:;" onclick="checkAll(this);"><i></i><span>全选</span></a></li>
    

    列表复选框:

     <td align="center">
          <asp:CheckBox ID="chkId" CssClass="checkall" runat="server" style="vertical-align:middle;" />
          <asp:HiddenField ID="hidId" Value='<%#Eval("SysBid_ID")%>' runat="server" />
        </td>
    

    使用javascript方法实现全选方法:

    //全选取消按钮函数
    function checkAll(chkobj) {
        if ($(chkobj).text() == "全选") {
            $(chkobj).children("span").text("取消");
            $(".checkall input:enabled").prop("checked", true);
        } else {
            $(chkobj).children("span").text("全选");
            $(".checkall input:enabled").prop("checked", false);
        }
    }
    

    (三)Repeater中删除列表数据一条或多条(批量与否)

    前端aspx代码:

    删除按钮

    <li><asp:LinkButton ID="btnDelete" runat="server" CssClass="del" OnClientClick="return ExePostBack('btnDelete');" onclick="btnDelete_Click"><i></i><span>删除</span></asp:LinkButton></li>
    

    选择要删除的数据,一条或多条:

    <td align="center">
          <asp:CheckBox ID="chkId" CssClass="checkall" runat="server" style="vertical-align:middle;" />
          <asp:HiddenField ID="hidId" Value='<%#Eval("SysBid_ID")%>' runat="server" />
    </td>
    

    后台aspx.cs方法

    protected void btnDelete_Click ( object sender, EventArgs e )
            {
                int sucCount = 0;
                int errorCount = 0;
                BLL.SystemBids bll = new BLL.SystemBids( );
                for ( int i = 0 ; i < rptList.Items.Count ; i++ )
                {
                    int id = Convert.ToInt32( ( ( HiddenField )rptList.Items[ i ].FindControl( "hidId" ) ).Value );
                    CheckBox cb = ( CheckBox )rptList.Items[ i ].FindControl( "chkId" );
                    if ( cb.Checked )
                    {
                        if ( bll.Delete( id ) )
                        {
                            sucCount += 1;
                        }
                        else
                        {
                            errorCount += 1;
                        }
                    }
                }
                AddAdminLog( DTEnums.ActionEnum.Delete.ToString( ), "删除系统标的" + sucCount + "条,失败" + errorCount + "条" ); //记录日志
                JscriptMsg( "删除成功" + sucCount + "条,失败" + errorCount + "条!",
                    Utils.CombUrlTxt( "bids_list.aspx", "bidcate_id={0}&keywords={1}", this.bidcate_id.ToString( ), this.keywords ), "Success" );
            }
    

    (四)1.Repeater数据列表中最后一列为操作,操作显示的动作可以是修改或已修改。2.根据选中行的id删除此行数据

    1.修改和已修改均可以显示,其visible可设定为某一个状态值

    例如:aspx前端代码:

    <td width="10%" align="center">
            <asp:LinkButton ID="lbaward" runat="server" CommandName="Updateaward" CommandArgument='<%#Eval("id")%>' Visible='<%#int.Parse(Eval("is_lock").ToString())==0? true : false %>'>抽奖</asp:LinkButton>
            <asp:LinkButton ID="lbed" runat="server" Visible='<%#int.Parse(Eval("is_lock").ToString()) == 1 ? true : false %>' >已中奖</asp:LinkButton>
    </td>
    

     2.根据选中行的id删除此行的数据

    前端aspx代码如上1: 添加CommandName,添加CommandArgument的值

    protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                if (e.CommandName == "Updateaward")
                {
                    //当前选中行的id
                    int id = int.Parse(e.CommandArgument.ToString());
                    Model.navigation nmodel = nbll.GetModel(id);
                    if (nbll.UpdateField(id, "is_lock=1 , remark='中奖时间为:" + DateTime.Now.ToString() + "'"))
                    {
                        JscriptMsg("设置中奖成功!", Request.Url.AbsoluteUri.ToString(), "success");
                    }
                    else
                    {
                        JscriptMsg("设置中奖失败!", Request.Url.AbsoluteUri.ToString(), "fail");
                    }
                }
            }
    

      

  • 相关阅读:
    ElasticSearch基本学习
    Liunx下的系统负荷
    记录调试树(方便跟到具体的调用)
    树形结构的数据库的存储
    VS快速生成JSON数据格式对应的实体
    关于理想化的编程
    通过Chrome浏览器检测和优化页面
    一个关于Random算法的问题
    MVC中的一般权限管理
    文件读写锁
  • 原文地址:https://www.cnblogs.com/Wbely/p/3923772.html
Copyright © 2020-2023  润新知