我有一个Reapter控件,里面有一个自定义的服务器端控件。当我将程式码:在一个ASP.net转发器中的Eval在另一个控件内不起作用
<%# Eval("DateAdded") %>
中继器的项目模板中它工作正常,但是当我把它转发里面的自定义服务器控件中,这是行不通的。 是否可以像Parent.Eval()或Container.Eval()那样回到Reapeter的上下文而不是自定义控件?
我有一个Reapter控件,里面有一个自定义的服务器端控件。当我将程式码:在一个ASP.net转发器中的Eval在另一个控件内不起作用
<%# Eval("DateAdded") %>
中继器的项目模板中它工作正常,但是当我把它转发里面的自定义服务器控件中,这是行不通的。 是否可以像Parent.Eval()或Container.Eval()那样回到Reapeter的上下文而不是自定义控件?
该中继器是数据绑定,您将这个eval语句放入的控件不是。您需要使用属性将值传递给控件。
例如:
<uc1:MyControl MyProperty='<%# Eval("DateAdded") %>' />
您现在可以访问MyProperty
属性控件内访问此值。
它应该工作。你能为服务器控件提供更多的上下文/代码吗?
另外,你是否使用单引号来动态地使用eval来设置控件的属性?双引号应该会引发错误,而不仅仅是被忽略。
MyProperty='<%# Eval("DateAdded") %>'
这是否要求MyProperty事先定义为属性,还是只能在飞行中完成?我无法访问自定义控件的源代码,因此我无法添加属性。 – 2011-05-12 21:23:23
是的,它需要是控件上的一个属性。 – 2011-05-12 22:31:02