2011-02-03 90 views
1

第一次在这里发帖,解决代码块在运行时(C#)

我写,我想的东西传递下去以下的行动态控制:

HyperLink myLink = new HyperLink(); 
myLink.NavigateUrl = "/Home.aspx?id=<%= DataBinder.Eval(\"PageId\") %>"; 
myLink.Text = "The link"; 
myControl.Controls.Add(myLink); 

我想能够根据myControl最终放置控件的上下文(这不是WebControl,因此添加到控件集合不会输出到页面)在运行时解析myLink.NavigateUrl。

+0

更多详细资料请!你能给出一个具体的例子来说明你的控制是如何被使用的吗?即使有你对@tster的评论,我也不明白你在问什么。 – Leslie 2011-02-04 21:33:51

回答

1

这个问题对我没有任何意义。你应该知道,pageid是在这一点上有什么,所以你可以这样做:

HyperLink myLink = new HyperLink(); 
myLink.NavigateUrl = "/Home.aspx?id=" + PageId; 
myLink.Text = "The link"; 
myControl.Controls.Add(myLink); 

如果由于某种原因,你不能做到这一点,可以请您提供您的实际需要这个工作的代码。你发布的例子太简单了,不能告诉我们问题是什么。

+0

感谢您的回答,但我无法做出上述建议,因为我正在编写myControl,而不是使用代码,因此myLink可能看起来像任何东西,并提供任何类型的数据绑定表达式。 – Kurt 2011-02-04 09:58:46

+0

只是为了更清楚一点,我构建了一个可重用的控件,其他人将一组控件传入并指定一个数据源。然后,可重用控件将以自己的方式处理控件的解析和呈现,例如,它将在加载数据源的内容之前加载状态,并绑定控件,然后在加载/绑定之后会更新状态以反映加载的数据(使用AJAX更新面板)。 – Kurt 2011-02-04 11:49:16

0

更有效的是:

HyperLink myLink = new HyperLink(); 
myLink.NavigateUrl = string.Concat("/Home.aspx?id=", PageId); 
myLink.Text = "The link"; 
myControl.Controls.Add(myLink);