关于ASP.NET中的Repeater控件应用
<asp:repeater id="grdCartCircuit" runat="server">
<HeaderTemplate>
<table>
<tr><th>序号</th><th>str值</th></tr></HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Container.ItemIndex + 1%></td>
<td><%# Eval("这里是绑定字段")%></td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:repeater>
你应该得将字符串转换为table什么的吧,直接绑定应该不行。
asp中Repeater控件是干什么?
Repeater,用二表示层绑定数据的. 如:表示层 <%#Eval("这里为数据库字段名")%> 后代码: dr为sqldataredeaer对象 this.Repeater1.DataSource = dr; this.Repeater1.DataBind();
ajax中的Repeater控件
你使用.Net Framework开发吗?System.Web.UI.WebControls下的页面组件,引用时会一起加载Repeater、DataList 、DataGrid等。
C#版本
说明:把从数据库中取到的数据赋给PagedDataSource对象的DataSource属性,然后分别设置PagedDataSource对象的AllowPaging属性(允许分页)、PageSIze属性,CurrentPageIndex属性
1、首先在窗体拖入一个 Repeater控件,页面代码如下,红色部分为自行添加代码
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<li>
<%#DataBinder.Eval(Container.DataItem,"au_fname")%>
<%#DataBinder.Eval(Container.DataItem,"au_lname")%>
<%#DataBinder.Eval(Container.DataItem,"phone")%>
</li>
</ItemTemplate>
</asp:Repeater>
2、后台代码
页面载入事件代码
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
RepeaterDataBind();
}
数据绑定方法代码,自定义方法
private void RepeaterDataBind()
{ //定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的.
SqlConnection conn=new SqlConnection(ConfigurationSettings.AppSettings["con"].ToString());
//创建SQL语句
string sql="select au_fname,au_lname,phone from authors";
//创建数据适配器对象
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
创建DataSet对象
DataSet ds=new DataSet();
try
{
da.Fill(ds,"authors");
//创建分页类
PagedDataSource objPage=new PagedDataSource();
//设置数据源
objPage.DataSource=ds.Tables["authors"].DefaultView;
//允许分页
objPage.AllowPaging=true;
//设置每页显示条数
objPage.PageSize=5;
//定义变量用来保存当前页索引
int curPage;
//判断是否有页面跳转请求
if(Request.QueryString["Page"]!=null)
curPage=Convert.ToInt32(Request.QueryString["Page"]);
else
curPage=1;
objPage.CurrentPageIndex=curPage-1;
this.Label1.Text="当前页:第"+curPage.ToString()+"页";
if(!objPage.IsFirstPage)
{ //定义"上一页"超级连接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引植
this.HyperLink1.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(curPage-1);
}
if(!objPage.IsLastPage)
{
this.HyperLink2.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(curPage+1);
}
this.Repeater1.DataSource=objPage;
this.Repeater1.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
repeater子控件触发事件
是不是你 以前repeater数据绑定没有在iF(!page.ispostback)中执行,那样的话就会导致你每次点击按钮的时候,进行回发首先发生的事件是页面刷新,这样的话你得rep就会重新绑定,那你mand事件当然也就没有了