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

前台页面:

 <div class="contianer p10">
<h3>
当前位置:<a href="Index.aspx" target="_self" >首页</a>>文章管理</h3>
<hr/>
<div class="content">
<asp:repeater ID="rptArticle" runat="server" ClientIDMode="Static" >
<HeaderTemplate>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<th width="6%">选择</th>
<th width="6%">编号</th>
<th align="left">文章标题</th>
<th width="16%">发布时间</th>
<th width="10%">操作</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="cb_id" CssClass="checkall" runat="server" /></td>
<td><asp:Label ID="lb_id" runat="server" Text='<%#Eval("aNo")%>'></asp:Label></td>
<td><a href="ArticleShow.aspx?id=<%#Eval("aNo") %>"><%#Eval("aTitle")%></a></td>
<td><%#string.Format("{0:g}", Eval("aDate"))%></td>
<td><span><a href="ArticleShow.aspx?id=<%#Eval("aNo") %>">修改</a></span></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:repeater>
</div>
<div class="clear"></div>
<!-- 分页控件 -->
<div>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" HorizontalAlign="Right" ShowCustomInfoSection="Right"
Width="100%" Style="font-size: 12px" inputboxstyle="width:19px" CustomInfoHTML=""
ShowPageIndexBox="Always" AlwaysShow="false" FirstPageText="首页" LastPageText="尾页"
NextPageText="下一页" PrevPageText="上一页" CustomInfoStyle="FONT-SIZE: 12px" CurrentPageButtonClass="pagination"
PageSize="16" ForeColor="#1460AD" OnPageChanged="AspNetPager1_PageChanged">
</webdiyer:AspNetPager>
</div>
<!-- 分页控件end --> <br />
<asp:Button ID="BtnDelete" runat="server"
OnClientClick="return confirm( '确定要删除这些记录吗? ');"
onclick="BtnDelete_Click" Text="删除" />
&nbsp;
<asp:Label ID="lbMsg" runat="server" Text=""></asp:Label>
&nbsp;
<asp:Button ID="BtnAdd" runat="server" Text="添加"
onclick="BtnAdd_Click"/> </div>

后台页面:

 ArticleBLL bll = new ArticleBLL();
protected void Page_Load(object sender, EventArgs e)
{
this.lbMsg.Text = "";
if (!IsPostBack)
{
BindRepeater();
}
}
// 绑定数据
private void BindRepeater()
{
string strSql = "select * from article"; PagedDataSource ps = new PagedDataSource();
ps.DataSource = bll.GetDataList(strSql).DefaultView;
AspNetPager1.RecordCount = ps.Count;
ps.CurrentPageIndex = AspNetPager1.CurrentPageIndex - ;
ps.AllowPaging = true;
ps.PageSize = AspNetPager1.PageSize;
this.rptArticle.DataSource = ps;
this.rptArticle.DataBind();
}
// 分页控件事件绑定
public void AspNetPager1_PageChanged(object sender, EventArgs e)
{
BindRepeater();
}
// 添加文章
protected void BtnAdd_Click(object sender, EventArgs e)
{
Response.Redirect("ArticleShow.aspx");
}
// 删除
protected void BtnDelete_Click(object sender, EventArgs e)
{
for (int i = ; i < rptArticle.Items.Count; i++)
{
int id = Convert.ToInt32(((Label)rptArticle.Items[i].FindControl("lb_id")).Text);
CheckBox cb = (CheckBox)rptArticle.Items[i].FindControl("cb_id");
if (cb.Checked)
{
bll.Delete(id.ToString());
}
}
this.lbMsg.Text = "删除成功";
}

处理办法是在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. netsh学习

    show allowedprogram –显示被允许的程序配置 show config - 显示防火墙的配置 show currentprofile -显示 Windows 防火墙的当前配置文件. s ...

  2. js 面向对象式编程

    1.声明一个函数,在函数内进行初始化操作,,函数不能有返回值2.把需要的参数传递进去,参数最好以对象形式传入,如果有默认的设置默认参数3.把传入的参数都保存到对象的属性上面4.把初始化操作中需要用到的 ...

  3. VNC-tigervnc-server远程调用图形化

    远程调用Linux图形化,很不错的.. 01.远程Linux须装图形化 yum groupinstall -y    'Desktop'   'X Window System'  #xclock试图形 ...

  4. Linux链接文件ln

    链接命令:ln 生成链接文件   ln [源文件] [目标目录] : 创建硬链接 -s:创建软链接    硬链接特征:(ln )1.拥有相同的i节点和存储block快,可以看做是同一个文件2.可通过i ...

  5. Java中初级数值类型的大小, volatile和包装类wrapped type的比较

    Java中的初级数值类型 Java是静态类型语言, 所有的变量必须先声明再使用. 其初级类型一共8种: boolean: 数据只包含1bit信息, 但是占空间为8-bit, 默认值为false byt ...

  6. http1.1 协议响应方面参数

    HTTP1.1   提供了一个必须的Host字段,而且建立好一次连接之后可以重复使用.提高用户的上网体验. 响应信息 HTTP/1.1 200 OK                           ...

  7. 我遇到了Hibernate异常

    真是郁闷,今天想用Hibernate的实现对数据库的增删查改,但是就是报异常不断啊!呵呵,为什么?就是在主键的问题上,我用主键的生成形式是:Sequence时就报IllegalArgumentExce ...

  8. hdu--DFS

    DFS Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  9. 入门Nginx

    一.正向代理和反向代理 正向代理举例:翻越万里长城去游览墙外的景色 反向代理举例:负载均衡 正向代理和反向代理涉及三个主体: 请求方 代理 被请求方 正向代理中,代理跟请求方是一家子,请求方说要啥,代 ...

  10. RHCE7 -- systemctl命令

    查询所有单元的状态: [root@rhce7 ~]# systemctl UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automo ...