将Repeater绑定到一个数据集后,在另外一个按钮事件中获取Repeater.DataSource,结果总是空的,为什么?
例如:
private Repeater repeater;
private void Page_load(){
if(!IsPostBack){
repeater.DataSource = nodeList; //nodeList是一个包含数据的XmlNodeList对象
}
}
public void Button_Click(){
XmlNodeList nodeList = (XmlNodeList)repeater.DataSource;
}
nodeList为空,如何才能获取到原来的这个nodeList?
例如:
private Repeater repeater;
private void Page_load(){
if(!IsPostBack){
repeater.DataSource = nodeList; //nodeList是一个包含数据的XmlNodeList对象
}
}
public void Button_Click(){
XmlNodeList nodeList = (XmlNodeList)repeater.DataSource;
}
nodeList为空,如何才能获取到原来的这个nodeList?
XmlNodeList nodeList = (XmlNodeList)repeater.DataSource;
是得不到的,
想得到DataSource有
1、直接用数据源nodeList
2、从repeater中一行一行读
用foreach()就可以
XmlNodeList nodeList = (XmlNodeList)nodeList;
这样试试吧!
如果按你那样肯定不行了,因为repeater.DataSource 只是局部定义的,所以只在该方法内有效
不过页面性能会降低~
然后,需要的时候取出来,就可以用了.
XmlNodeList nodeList = Session("nodelist")
去掉试试
将repeater定义为静态,会报错:CS0176: 无法使用实例引用访问静态成员“departmentRepeater”,改用类型名来限定它;目前只能是使用repeater.items[i].FindControl("controlName")来一一获取原来绑定的XmlNode节点属性,感觉非常浪费资源,还有好点的办法没?