日期:2014-05-18  浏览次数:20441 次

求助ASP.NET 2.0中Eval()的用法,很急!
我想编程给一堆名字连续的控件赋值,刚开始看到Eval(),不知道到底怎么用,写了下面一段东西:    
 
int     i;    
for     (i     =     1;     i     <=     5;     i++)    
{    
Eval( "Label "     +     i.ToString()+ ".Text     =     "+i);    
}    
 
写完了调试的时候光标停在Eval( "Label "     +     i.ToString()+ ".Text     =     "+i);这一句上,提示说是“Eval()、XPath()     和     Bind()     这类数据绑定方法只能在数据绑定控件的上下文中使用。”    
在ASP.NET   2.0中Eval只能是从绑定的数据源中读出数据吗?我想做的事情就是把几个数据从数据源里读出来,赋给Label1到Label5,也可能是给他们加上不同的链接。如果哪位高手看我写的不靠谱的话贴段代码上来也行,谢过各位了!

------解决方案--------------------
C# 里的 Eval()是数据控件绑定的时候用的。与JS中的Eval()方法不同。

这种情况 我是把要赋值的Label搞成个数组 Label[] lab,然后在赋值。



------解决方案--------------------
<%# DataBinder.Eval(Container.DataItem, "Price "%>
<%# DataBinder.Eval(Container.DataItem, "Price ", "{0:c} ") %>
这是Eval的用法
自己去msdn上看说明
------解决方案--------------------
Eval 的绑定是要有数据源的
你的这种直接赋值就可以了,如果控件名是你例子中那种变化的,可以使用findcontrol
------解决方案--------------------
for i=1 to 10
dim tb as textbox=findcontrol( "textbox " & i)
if tb.text.tostring <> " " then
...........................
end if
next

=======================
使用这个函数findcontrol()
我用的VB写的,C#的写法类似
关键就是这个函数怎么使用了
哈哈
------解决方案--------------------
我用的是获取空间值,你正好相反,所以是一样的,至要你看明白我的代码你就会自己写了
努力啊
以后要多帮助其他人
------解决方案--------------------
Eval用也是在前台用的
------解决方案--------------------
多做.多问.祝你好运
------解决方案--------------------
还可以
用repeater控件
只在模板里用一个lable </b>
然后把要绑定的数据放到数组里 和 repeater绑定就行 了


试着答第二个问题

因为 界面是用xml标准的语言描述的
界面元素间有嵌套包含关系

在后台用C#控制界面时
先找到父元素 才能找到子元素

先前没有MasterPage ,所以是 page中就包含HyperLink1
后来有MasterPage ,HyperLink1放在了Content1里 ,所以先找到 Content1 ,再findcontrol

是不是这么回事