DataGrid中使用动态模板文件时DataBind.Eval的出错问题:(

lonk 2003-07-16 02:01:08
在一个页面上使用DataGrid,希望它的itemtemplate从文件中获取。

所以就
myDataGrid.ItemTemplate = Page.LoadTemplate("default.ascx");
myDataGrid.DataSource = myImageTable.DefaultView;
myDataGrid.DataBind();

在default.ascx里有这么一句
...
<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>
...
执行的时候提示
System.Web.UI.Control并不包含对DataItem的定义。

但是如果我不用模板文件,而直接在原来的页面上写
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>
</ItemTemplate>
就不会有问题。

不得其解,请教各位了.
...全文
43 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
szwebnet 2003-07-16
  • 打赏
  • 举报
回复
myDataGrid.ItemTemplate = Page.LoadTemplate("default.ascx");
myDataGrid.DataSource = myImageTable.DefaultView;
myDataGrid.DataBind();

你是在别的文件Page.LoadTemplate和DataBind();赋值的~
lonk 2003-07-16
  • 打赏
  • 举报
回复
sigh, 我知道了,应该写成
<%# DataBinder.Eval(Container, "DataItem.ImageURL") %>
.....
lonk 2003-07-16
  • 打赏
  • 举报
回复
就一个default.ascx文件....
szwebnet 2003-07-16
  • 打赏
  • 举报
回复
请注意后台代码原则.

假设,default.ascx中有一个label1,那么根给label1赋值就应在default.ascx.cs中进行.而不是在引用ascx用户控件的页面中赋值!之所以这样动态创建模板列时,.net提供的是一个接口.而不是一个直接的引用.请看msdn有关动态创建模板列的规范!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧