博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Repeater 动态增加删除一行
阅读量:5045 次
发布时间:2019-06-12

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

文章参考:文章参考http://www.cnblogs.com/dataadapter/archive/2012/06/25/2562885.html

 

效果:

 

前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="rptTest.Default" %>        
序号 收款人 报销金额 扣款金额 实付金额 银行账号 开户行
<%# Container.ItemIndex+1 %>

 

后台代码:

添加一行:

protected void btnAddNewRow_Click(object sender, EventArgs e)         {            //首先,恢复数据源            DataTable dt = DefineDataTableSchema(hfRptColumns.Value);            foreach (RepeaterItem item in rptTest.Items)             {                DataRow newRow = dt.NewRow();                newRow["receiver"] = ((Label)item.FindControl("lblReceiver")).Text;                newRow["expense_amount"] = ((TextBox)item.FindControl("txtExpenseAmount")).Text;                newRow["cut_payment_amount"] = ((TextBox)item.FindControl("txtCutPaymentAmount")).Text;                newRow["acutal_amount"] = ((Label)item.FindControl("lblAcutalAmount")).Text;                newRow["bank_no"] = ((Label)item.FindControl("lblBankNo")).Text;                newRow["bank_name"] = ((Label)item.FindControl("lblBankName")).Text;                dt.Rows.Add(newRow);            }            //添加一行            DataRow row = dt.NewRow();            dt.Rows.Add(row);            rptTest.DataSource = dt;            rptTest.DataBind();        }

删除一行

protected void btnDel_Click(object sender, EventArgs e)        {            var arr = new System.Collections.ArrayList();            DataTable dt = DefineDataTableSchema(hfRptColumns.Value);            foreach (RepeaterItem item in rptTest.Items)            {                var chk = item.FindControl("ckBox") as CheckBox;                if (chk.Checked) continue;                DataRow newRow = dt.NewRow();                newRow["receiver"] = ((Label)item.FindControl("lblReceiver")).Text;                newRow["expense_amount"] = ((TextBox)item.FindControl("txtExpenseAmount")).Text;                newRow["cut_payment_amount"] = ((TextBox)item.FindControl("txtCutPaymentAmount")).Text;                newRow["acutal_amount"] = ((Label)item.FindControl("lblAcutalAmount")).Text;                newRow["bank_no"] = ((Label)item.FindControl("lblBankNo")).Text;                newRow["bank_name"] = ((Label)item.FindControl("lblBankName")).Text;                dt.Rows.Add(newRow);            }            rptTest.DataSource = dt;            rptTest.DataBind();        }

 

因为Repeater是服务端控件,所以用它动态增加或删除一行会刷新页面。用户体验远没有用 knockoutjs 绑定的效果好

 

附:

转载于:https://www.cnblogs.com/Aphasia/p/4117207.html

你可能感兴趣的文章
排序系列之——冒泡排序、插入排序、选择排序
查看>>
爬虫基础
查看>>
jquery.lazyload延迟加载图片第一屏问题
查看>>
HDU 1011 Starship Troopers (树形DP)
查看>>
手把手教你写DI_1_DI框架有什么?
查看>>
.net常见的一些面试题
查看>>
OGRE 源码编译方法
查看>>
上周热点回顾(10.20-10.26)
查看>>
C#正则表达式引发的CPU跑高问题以及解决方法
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了...
查看>>
APScheduler调度器
查看>>
设计模式——原型模式
查看>>
如何一个pdf文件拆分为若干个pdf文件
查看>>
web.xml中listener、 filter、servlet 加载顺序及其详解
查看>>
前端chrome浏览器调试总结
查看>>
获取手机验证码修改
查看>>
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>