我在这个版块里将这方面的例子和答案找完了,没有一个是可用的!
.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,这一句根本没进入循环
.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,这一句根本没进入循环
===========================================
里面的属性都按大小写规范改一下
{
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();
}
<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)
{
}
}
我在网上找了不少资料,全是写FindControl怎么查询的,绑定的方法都没讲,最关键的东西往往在例子里都不愿意讲
<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
} }这样可以能运行
http://topic.csdn.net/u/20080601/07/0cb05d69-bb28-4461-b86d-943e231f535a.html
http://topic.csdn.net/u/20080601/07/0cb05d69-bb28-4461-b86d-943e231f535a.html
<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里面的内容