我在这个版块里将这方面的例子和答案找完了,没有一个是可用的!
.asp文件
------------------
<asp:Button ID="Auditbtn" runat="server" OnClick="BulkAuditField_Click" Text="审 核"  /><asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <input type="checkbox" id="CheckBox1" value='<%#DataBinder.Eval(Container.DataItem, "id")%>' runat="server" enablebiewstate="true" />
    </ItemTemplate>
</asp:Repeater>.asp.cs文件
-----------------------------
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        dlBind();  //绑定数据
    }
}protected void BulkAuditField_Click(object sender, EventArgs e)
{
    //dlBind();             //重新刷新所有数据            foreach (RepeaterItem c in this.Repeater1.Items)
    {
        HtmlInputCheckBox myCheckBox = (HtmlInputCheckBox)c.FindControl("CheckBox1");
        CheckBox cb = (CheckBox)c.FindControl("CheckBox1");
        Response.Write(cb);
    } 
}绑定数据我放在!IsPostBack了,不存在提交后数据刷回去,我现在的问题是点击审核后:
this.Repeater1.Items.Count 一直是0
,也就是说,按钮根本不读 Repeater 的值,我调试了三天了,如果将dlBind()的注释去掉,就能出现数据,但是所有的复选框全是False,如果注释掉,点击审核后,foreach (RepeaterItem c in this.Repeater1.Items,这一句根本没进入循环

解决方案 »

  1.   

    <input type="checkbox" id="CheckBox1" value=' <%#DataBinder.Eval(Container.DataItem, "id")%>' runat="server" enablebiewstate="true" /> 
    ===========================================
    里面的属性都按大小写规范改一下
      

  2.   

    我的问题其实很简单:protected void BulkAuditField_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem c in this.Repeater1.Items)
        {
            ...//这里不执行
        }
    }点击按钮"审核"后,所有的数据就没了,   this.Repeater1.Items.Count 的值也为0,除非:
    protected void BulkAuditField_Click(object sender, EventArgs e)
    {
        dlBind();            
        foreach (RepeaterItem c in this.Repeater1.Items)
        {
            ...//这里不执行
        }
    }但如果这样,所有的数据又刷回去了,复选框全没有被选择了!我的问题在于将CheckBox放入repeater后,点击按钮触发,读不到repeater里面的checkbox状态和内容,我试了,别的字段的内容也得不到,相当于没有执行一般,是不是repeater在执行的时候要绑定里面的CheckBox,要不然会没有任何关联?    //显示记录
        private void dlBind()
        {
            int curpage = Convert.ToInt32(this.labPage.Text);
            ShQsAction MyA = new ShQsAction();
            PagedDataSource ps = new PagedDataSource();
            ps.DataSource = MyA.UsersAudit();
            ps.AllowPaging = true; //是否可以分页
            ps.PageSize = 20;      //每页显示的数量
            ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
            this.lnkbtnUp.Visible = true;
            this.lnkbtnNext.Visible = true;
            this.lnkbtnBack.Visible = true;
            this.lnkbtnOne.Visible = true;        if (curpage == 1)
            {
                this.lnkbtnOne.Visible = false;//不显示第一页按钮
                this.lnkbtnUp.Visible = false; //不显示上一页按钮
            }
            if (curpage == ps.PageCount)
            {
                this.lnkbtnNext.Visible = false;//不显示下一页
                this.lnkbtnBack.Visible = false;//不显示最后一页
            }        //翻页时参数要带上
            //本页面所属一级栏目编号
            //if (Request.QueryString["curr_id"] != null)
            //{
            //    Curr_id = Request.QueryString["curr_id"].ToString();
            //}
            //Page.DataBind();        this.CountArticle.Text = Convert.ToString(ps.DataSourceCount);//文章总数
            this.PageArticle.Text = Convert.ToString(ps.PageSize);//每页记录数        this.labBackPage.Text = Convert.ToString(ps.PageCount);
            this.Repeater1.DataSource = ps;
            this.Repeater1.DataBind();
        }
      

  3.   

    和input的大小写没关系,我将最简单的例子作过测试
    <asp:Button ID="Auditbtn" runat="server" OnClick="BulkAuditField_Click" Text="审 核"  /> <asp:Repeater ID="Repeater1" runat="server"> 
        <ItemTemplate> 
            <%#DataBinder.Eval(Container.DataItem, "id")%>
        </ItemTemplate> 
    </asp:Repeater> 
    ------------------------------------------------------------
    protected void BulkAuditField_Click(object sender, EventArgs e) 

        //this.Repeater1.Items.Count 一直为0,不会进入循环,问题出在这,Repeater1的数据按钮触发得不到    foreach (RepeaterItem c in this.Repeater1.Items) 
        { 
        } 
      

  4.   

    谁有没有Repeater 中使用 CheckBox 的完整例子,能否将绑定的方法贴上来一下!
    我在网上找了不少资料,全是写FindControl怎么查询的,绑定的方法都没讲,最关键的东西往往在例子里都不愿意讲
      

  5.   


       <asp:Repeater ID="Repeater1" runat="server"> 
        <ItemTemplate> 
            <%#DataBinder.Eval(Container.DataItem, "ID")%> 
        </ItemTemplate> 
    </asp:Repeater> 
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    -------------------------------------------------------------------------------
     protected void Button1_Click(object sender, EventArgs e)
        {
            foreach (RepeaterItem c in this.Repeater1.Items)
            {
                Response.Write("OK"); //执行后会显示多个OK
            }     }这样可以能运行
      

  6.   

    我的问题和楼主的相同,就是不会做。
    http://topic.csdn.net/u/20080601/07/0cb05d69-bb28-4461-b86d-943e231f535a.html
      

  7.   

    我的问题和楼主的相同,就是不会做。
    http://topic.csdn.net/u/20080601/07/0cb05d69-bb28-4461-b86d-943e231f535a.html
      

  8.   

    我要实现的是在Repeater控件中,实现Checkbox,  多条记录的例表中,通过复选框,批量审核多条记录,与同时删除多条记录的功能相同!<asp:Repeater ID="Repeater1" runat="server"> 
        <ItemTemplate> 
            <%#DataBinder.Eval(Container.DataItem, "ID")%> 
        </ItemTemplate> 
    </asp:Repeater> 
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 
    ------------------------------------------------------------------------------- 
    protected void Button1_Click(object sender, EventArgs e) 
        { 
            foreach (RepeaterItem c in this.Repeater1.Items) 
            { 
                Response.Write("OK"); //就是这里不会执行,一个OK都没有
            } 
        } 我在网上看了好多例子都说成功了,可没有完整的代码!上面这一段我试了很多次了,就是不读Repeater里面的内容
      

  9.   

    将 if (!Page.PostBack) 删掉就会OK!
      

  10.   

    或者将你的Repeat绑定放在 if (!Page.PostBack){..} 外面
      

  11.   

    哎,checkbox,这个不成熟的控件