.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");
                }
            }
        }

  

原文地址:https://www.cnblogs.com/Wbely/p/3923772.html