Bry*_*yan 17 .net asp.net data-binding eval
如何从代码隐藏中调用Eval()?我知道这是像DataBinder.Eval(Container.DataItem,"name")之类的东西的前端快捷方式,但我无法编译这个该死的东西.我想,我错过了正确的方法参数.我想转这样的事情:
<asp:Image ID="imgLogo" runat="server" ImageUrl='<%# Eval("name") %>'/>
Run Code Online (Sandbox Code Playgroud)
成:
<asp:Image ID="imgLogo" runat="server" ImageUrl='<%# GetImagePath(???) %>'/>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
protected string GetImagePath(????)
{
//some code
return "some/logical/path" + Eval("name");
}
Run Code Online (Sandbox Code Playgroud)
asp:Image控件位于一个绑定到SqlDataReader的转发器中.
Rub*_*ben 15
Eval是一种方法Page(TemplateControl实际上,这意味着它也存在UserControl).所以你不需要传递任何特殊参数:
protected string GetImagePath()
{
//some code
return "some/logical/path" + Eval("name");
}
Run Code Online (Sandbox Code Playgroud)
注意:您只能Eval在数据绑定时调用,但这也是隐含的情况<%# Eval(...) %>,因此不应该造成问题.
如果你想要绑定的实际对象,请使用GetDataItem(),Eval(x)基本上是指DataBinder.Eval(GetDataItem(), x).
你有没有尝试过类似的事情:
<asp:Image ID="imgLogo" runat="server' ImageUrl='<%# GetImagePath( Convert.ToString( Eval("name") ) ) %>' />
Run Code Online (Sandbox Code Playgroud)
和
protected string GetImagePath( string image )
{
return "some/logical/path/" + image;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25906 次 |
| 最近记录: |