写在前面的话:在做一个项目的时候,需要使用到Repeater控件,并且在Repeater控件内放置了CheckBox控件来标志需要删除的行,选中后,在后台取到的CheckBox的值总是为false。最后发现是在PageLoad函数中没有判断是否是回发就绑定了Repeater控件的数据,那么每次进入页面CheckBox控件的值当然被刷新为false了。

前台页面:

  1. <div class="contianer p10">
  2. <h3>
  3. 当前位置:<a href="Index.aspx" target="_self" >首页</a>>文章管理</h3>
  4. <hr/>
  5. <div class="content">
  6. <asp:repeater ID="rptArticle" runat="server" ClientIDMode="Static" >
  7. <HeaderTemplate>
  8. <table border="0" cellspacing="0" cellpadding="0" width="100%">
  9. <tr>
  10. <th width="6%">选择</th>
  11. <th width="6%">编号</th>
  12. <th align="left">文章标题</th>
  13. <th width="16%">发布时间</th>
  14. <th width="10%">操作</th>
  15. </tr>
  16. </HeaderTemplate>
  17. <ItemTemplate>
  18. <tr>
  19. <td><asp:CheckBox ID="cb_id" CssClass="checkall" runat="server" /></td>
  20. <td><asp:Label ID="lb_id" runat="server" Text='<%#Eval("aNo")%>'></asp:Label></td>
  21. <td><a href="ArticleShow.aspx?id=<%#Eval("aNo") %>"><%#Eval("aTitle")%></a></td>
  22. <td><%#string.Format("{0:g}", Eval("aDate"))%></td>
  23. <td><span><a href="ArticleShow.aspx?id=<%#Eval("aNo") %>">修改</a></span></td>
  24. </tr>
  25. </ItemTemplate>
  26. <FooterTemplate>
  27. </table>
  28. </FooterTemplate>
  29. </asp:repeater>
  30. </div>
  31. <div class="clear"></div>
  32. <!-- 分页控件 -->
  33. <div>
  34. <webdiyer:AspNetPager ID="AspNetPager1" runat="server" HorizontalAlign="Right" ShowCustomInfoSection="Right"
  35. Width="100%" Style="font-size: 12px" inputboxstyle="width:19px" CustomInfoHTML=""
  36. ShowPageIndexBox="Always" AlwaysShow="false" FirstPageText="首页" LastPageText="尾页"
  37. NextPageText="下一页" PrevPageText="上一页" CustomInfoStyle="FONT-SIZE: 12px" CurrentPageButtonClass="pagination"
  38. PageSize="16" ForeColor="#1460AD" OnPageChanged="AspNetPager1_PageChanged">
  39. </webdiyer:AspNetPager>
  40. </div>
  41. <!-- 分页控件end -->
  42.  
  43. <br />
  44. <asp:Button ID="BtnDelete" runat="server"
  45. OnClientClick="return confirm( '确定要删除这些记录吗? ');"
  46. onclick="BtnDelete_Click" Text="删除" />
  47. &nbsp;
  48. <asp:Label ID="lbMsg" runat="server" Text=""></asp:Label>
  49. &nbsp;
  50. <asp:Button ID="BtnAdd" runat="server" Text="添加"
  51. onclick="BtnAdd_Click"/>
  52.  
  53. </div>

后台页面:

  1. ArticleBLL bll = new ArticleBLL();
  2. protected void Page_Load(object sender, EventArgs e)
  3. {
  4. this.lbMsg.Text = "";
  5. if (!IsPostBack)
  6. {
  7. BindRepeater();
  8. }
  9. }
  10. // 绑定数据
  11. private void BindRepeater()
  12. {
  13. string strSql = "select * from article";
  14.  
  15. PagedDataSource ps = new PagedDataSource();
  16. ps.DataSource = bll.GetDataList(strSql).DefaultView;
  17. AspNetPager1.RecordCount = ps.Count;
  18. ps.CurrentPageIndex = AspNetPager1.CurrentPageIndex - ;
  19. ps.AllowPaging = true;
  20. ps.PageSize = AspNetPager1.PageSize;
  21. this.rptArticle.DataSource = ps;
  22. this.rptArticle.DataBind();
  23. }
  24. // 分页控件事件绑定
  25. public void AspNetPager1_PageChanged(object sender, EventArgs e)
  26. {
  27. BindRepeater();
  28. }
  29. // 添加文章
  30. protected void BtnAdd_Click(object sender, EventArgs e)
  31. {
  32. Response.Redirect("ArticleShow.aspx");
  33. }
  34. // 删除
  35. protected void BtnDelete_Click(object sender, EventArgs e)
  36. {
  37. for (int i = ; i < rptArticle.Items.Count; i++)
  38. {
  39. int id = Convert.ToInt32(((Label)rptArticle.Items[i].FindControl("lb_id")).Text);
  40. CheckBox cb = (CheckBox)rptArticle.Items[i].FindControl("cb_id");
  41. if (cb.Checked)
  42. {
  43. bll.Delete(id.ToString());
  44. }
  45. }
  46. this.lbMsg.Text = "删除成功";
  47. }

处理办法是在PageLoad里面判断是否是回发就可以了。

获取不到Repeater控件中的CheckBox选中状态的更多相关文章

  1. asp.net关于Repeater控件中的全选,批量操作

    今天在Repeater控件中碰到一个全选的操作,于是上网查了一下,找到一个觉得比较好,便记录下来, 界面代码简化之后(全选操作): <script type="text/javascr ...

  2. 在Repeater控件中使用if语句

    原文:在Repeater控件中使用if语句 .Afr_ARTICLE_TITLE { font: NORMAL BOLD 14px "Tahoma"; } .Afr_CONTENT ...

  3. 获取Repeater控件中的每一项数据

    var items = rptList.Items;//获取Repeater控件的所有项 foreach (RepeaterItem item in items)//遍历每一项内容 {   var t ...

  4. ASP.NET- 查找Repeater控件中嵌套的控件

    如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用Find ...

  5. asp.net 在repeater控件中加按钮

    在repeater中加入方法有两种方法: 第一种:是对repeater控件的行添加OnItemCommand事件,添加方法也是有两种 1.在设计页面中,选中repeater控件右击==>属性== ...

  6. JQuery获取指定元素中的checkbox选中状态的一些属性

    项目中用户上传病例数据,每一次上传自动生成一个病例文件夹,数据保存到后台,前端显示文件夹,现在的需求是勾选想要删除的文件夹的chenckbox,点击删除后,数据库和前端都相应的更新. 如果是静态页面, ...

  7. Repeater控件中的三目运算

    <asp:Repeater ID="rptimg" runat="server">        <ItemTemplate>      ...

  8. 获取WPF的DataGrid控件中,是否存在没有通过错误验证的Cell

     /// <summary>         /// 获取DataGrid的所有行是否存在验证错误.         /// </summary>         /// &l ...

  9. Repeater控件中的LinkButton(转)

    LinkButton小用法: 1.在使用时可以通过CommandName和CommandArgument属性联合起来绑定并传值,如:CommandName="record"Comm ...

随机推荐

  1. MVC MVP MVVM 图解

    1.MVC (1)图解 解释: 视图(View):用户界面. 控制器(Controller):业务逻辑 模型(Model):数据保存 各部分之间的通信方式如下: View 传送指令到 Controll ...

  2. Openerp 7 view画面编辑/创建/删除/复制功能控制

    OpenERP 7.0中,Tree或Form画面上可以添加属性create edit delete,用于控制Create.Delete.Edit.Duplicate功能是否显现.如下例:<for ...

  3. springmvc自己定义拦截器

    Spring MVC也能够使用拦截器对请求进行拦截处理,用户能够自己定义拦截器来实现特定的功能,自己定义的拦截器必须实现HandlerInterceptor接口. 直接看下样例: package co ...

  4. onkeydown-onkeypress-onkeyup

      CreateTime--2016年12月17日22:28:36Author:Marydononkeydown.onkeypress和onkeyup参考链接:http://www.jb51.net/ ...

  5. js-知识集锦

      CreateTime--2016年9月22日14:37:51Author:Marydonjs小知识点集锦1. JSON.stringify(Obj);//将Object对象转换成json格式的st ...

  6. 调用网易有道词典api

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #调用网易有道词典api import urllib import json class Youdao(): ...

  7. java Socket Udp

    接收端: package cn.itcast.net.p2.udp; import java.io.IOException;import java.net.DatagramPacket;import ...

  8. 启动ip wizard时报the ip wizard does not support dhcp

    启动ip wizard时报the ip wizard does not support dhcp 阅读:5502012-05-11 11:15 标签:loadrunner 打开ip wizard:开始 ...

  9. 【vue.js】绑定click事件

  10. 【laravel5.4】关键字【use】使用

    1.在namespace 和 class 之间使用,是引入类文件的意思,命名空间过长或者类文件同名,可以使用[as]区别 2.在class 类里面使用[use],是导入trait  类的意思,多继承的 ...