Datalist控件分析和总结.docx
Datalist嵌套
DataList中获取子控件的代码
stringgetvalue=null;
stringgetvalue=null;
for(inti=0;ithis.DataList1_TMB_TestQuestion.Items.Count;i++)
{
getvalue=((RadioButtonList)this.DataList1_TMB_TestQuestion.Items[i].Fin
dControl(RadioButtonList1)).SelectedValue.ToString(); //重要
的是这句话
if(getvalue==null||getvalue.Equals())
{
Response.Write(scriptalert(第+(i+1)+题未填!)/script);
break;
}
DataList嵌套绑定数据
最近要做一个图书分类列表显示
最近要做一个图书分类列表显示,要用到这个,想了好久,又在网上搜了一下,才搞定
关键的就是在外层
关键的就是在外层DataList的ItemDataBound的事件中使用e.Item.FindControl()来
找到自己所需要的
找到自己所需要的(在外层)数据
我郁闷的就是自己开始是在
我郁闷的就是自己开始是在DataBinding事件中处理,试了很多遍都没有搞定.
自己先拖一个
自己先拖一个 DataList1,编辑模板里面放一个 Lable1,在DataList1里面再放一个
DataList2,
DataList2,同样在DataList2编辑模板放一个Lable2.当然,两个Lable的数据绑定字段是
要自己写一下的
要自己写一下的.
看一下代码吧
看一下代码吧,这个很简单
1 protectedvoidPage_Load(objectsender,EventArgse)2 {
strings=SELECTBookClass.*FROMBookClassWHERE(BookClassLevel=0);
Book.DAL.DBAccessdb=newBook.DAL.DBAccess();
DataSetdr1=db.ExecuteDataSet(s);
DataList1.DataSource=dr1;
DataList1.DataBind();8
9 }
10 protectedvoidDataList1_ItemDataBound(objectsender,DataListItemEventArgse)
11 {
stringf=((Label)e.Item.FindControl(Label1)).Text;
strings=SELECTBookClass.*FROMBookClassWHERE(BookClassFather =@f);
14
Book.DAL.DBAccessdb=newBook.DAL.DBAccess();
db.AddParameter(@f,f);
DataSetds=db.ExecuteDataSet(s);
DataListdl2=(DataList)e.Item.FindControl(DataLis2);
19
19
20
21
dl2.DataSource=ds;
dl2.DataBind();
}
那个Book.DAL.DBAccess是我自己写的一个用来数据库访问并执行语句的类,不用管它,可以用我们一般最简答的数据库访问的过程替代.重要的看一下这句,这个是获得外层的值,
在这里就是图书分类的1级分类
stringf=((Label)e.Item.FindControl(Label1)).Text;
还有这句,这个是找到内层的DataList,找到它后给它的数据源赋值就OK了
DataListdl2=(DataList)e.Item.FindControl(DataLis2);
当然,我们也可以利用这个思想嵌套使用其他的数据控件
两层DataList的嵌套
2008年07月03日 09:36 IT168.com
【IT168技术文档】
内层控件数据绑定与事件声明在外层的ItemDataBind中实现;例子中外层DataList的Id为dlQuestion,内层为dlItem;代码如下
privatevoiddlQuestion_ItemDataBound(objectsender,System.Web.UI.WebControls.Da