我想编程给一堆名字连续的控件赋值,刚开始看到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,也可能是给他们加上不同的链接。如果哪位高手看我写的不靠谱的话贴段代码上来也行,谢过各位了!

解决方案 »

  1.   

    C# 里的 Eval()是数据控件绑定的时候用的。与JS中的Eval()方法不同。这种情况 我是把要赋值的Label搞成个数组 Label[] lab,然后在赋值。
      

  2.   

    <%# DataBinder.Eval(Container.DataItem, "Price"%>
    <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>
    这是Eval的用法
    自己去msdn上看说明
      

  3.   

    Eval 的绑定是要有数据源的
    你的这种直接赋值就可以了,如果控件名是你例子中那种变化的,可以使用findcontrol
      

  4.   

    for i=1 to 10
       dim tb as textbox=findcontrol("textbox" & i)
       if tb.text.tostring<>"" then
              ...........................
       end if
    next=======================
    使用这个函数findcontrol()
    我用的VB写的,C#的写法类似
    关键就是这个函数怎么使用了
    哈哈
      

  5.   

    特别感谢xingyjj(),问题已经解决的差不多了。再次想问各位一个问题,好像很多跟我一样的菜鸟都有这个问题。菜鸟刚上手ASP.NET 2.0的时候一是语法不熟二是没有经验,所以做个东西很困难。我在面对这个问题的时候知道怎么把我要做什么描述清楚,也知道会有某一个方法能让我去这么做,但是我不知道这个方法叫什么。就像如果xingyjj()不说findcontrol(),我不知道这个方法叫findcontrol()。而我们现有的语法参考都是你说方法的名字,他告诉你这方法能干什么。所以想问下大家用什么ASP.NET 2.0语法参考啊?这么多方法和属性我们是不可能全学过来的,想有个合适一点的拐棍,呵呵!
      

  6.   

    加分,希望大家能帮我解决一个更奇怪的问题。这个问题是这样的:同一个网站的两个不同页面,在第一个页面中使用FindControl(),一点问题都没有。但是在第二个页面中就会提示找不到控件。最奇怪的是,假如我要找HyperLink1这个控件,写到(HyperLink)this.后面的列表里都可以看到HyperLink1这个控件,但是写成((HyperLink)this.FindControl("HyperLink1")).Text="HyperLink1";就会出错说找不到控件,写成((HyperLink)this.HyperLink1).Text="HyperLink1";就一点问题都没有,郁闷死了!求大家帮忙解决这个问题,我都觉得这个问题可以进2007年度奇怪问题TOP 3了
      

  7.   

    找到问题的所在了,请教各位老鸟:为什么我的页面用了MasterPage再用FindControl()就会出问题?还是说写的时候要写成((HyperLink)this.Content1.FindControl("HyperLink1"))?
      

  8.   

    还可以
    用repeater控件
    只在模板里用一个lable</b>
    然后把要绑定的数据放到数组里 和 repeater绑定就行 了
    试着答第二个问题 因为 界面是用xml标准的语言描述的 
    界面元素间有嵌套包含关系在后台用C#控制界面时
    先找到父元素 才能找到子元素先前没有MasterPage ,所以是 page中就包含HyperLink1
    后来有MasterPage ,HyperLink1放在了Content1里 ,所以先找到 Content1 ,再findcontrol是不是这么回事