DataList遍历问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataList遍历问题相关的知识,希望对你有一定的参考价值。

刚才做了一个奇怪的DataList数据绑定,用的不是原先的DataBinder.Eval()方法,而是用的遍历DataList里的控件,然后再为控件赋值,却发现了一个奇怪的问题,问题如下:
前台语句
<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 120px; POSITION: absolute; TOP: 112px"
runat="server">
<ItemTemplate>
<FONT face="宋体">
<asp:TextBox id="tb" runat="server"></asp:TextBox></FONT>
</ItemTemplate>
</asp:DataList>
后台语句
private void Page_Load(object sender, System.EventArgs e)

if(!this.IsPostBack)

using(SqlConnection con=OperateDB.GetConnection())

con.Open();
SqlCommand cmd=new SqlCommand("select * from infor",con);
SqlDataAdapter sda=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
sda.Fill(ds,"infor");
this.DataList1.DataKeyField="id";
this.DataList1.DataSource=ds.Tables["infor"].DefaultView;
this.DataList1.DataBind();


foreach(DataListItem item in this.DataList1.Items)


System.Web.UI.WebControls.TextBox tbs=(TextBox)item.FindControl("tb");
tbs.Text="555";



可以为TextBox文本框赋值,但为什么出现7个文本框里面也有值,想问问大家为什么通过foreach遍历DataList遍历7次呢?

但如果把foreach换成for(int i=0;i>this.DataList1.Items.Count;i++)

System.Web.UI.WebControls.TextBox tbs=(TextBox)this.DataList1.Items[i].FindControl("tb");
tbs.Text="666";

就只有7个文本框而无值

参考技术A foreach(DataListItem item in this.DataList1.Items)

是7个字段,所以便利了7次。

以上是关于DataList遍历问题的主要内容,如果未能解决你的问题,请参考以下文章

C#中的Datalist控件遍历问题

结合HiddenField遍历DataList

ASP.net 关于datalist的问题

datalist嵌套子datalist获取不到ID的值

datalist利与弊

asp.net datalist 指定列植转换