字段不显示在GridView中asp.net 3.5

问题描述:

这里是情况,我有两个表tblProduct和tblCategory,我想要做的是填充GridView,我有LinqDataSource绑定到网格和正确的关联.dbml(tblProduct.CategoryID到tblCategory.ID)。字段不显示在GridView中asp.net 3.5

为了显示我用从tblCategory而不是tblProduct.CategoryID在GridView的字段:

<ItemTemplate> 
    <asp:Label ID="Label5" runat="server" Text='<%# Eval("tblCategory.Name") %>'> 
    </asp:Label> 
</ItemTemplate> 

这工作了VS2008调试器中正常,但一旦其发布到服务器(2003 + IIS6。 0)属于tblCategory的列根本不显示,而是显示类别名称(tblCategory.Name),就像它在调试器内部显示的那样,它是空白的,没有错误不会显示。

任何人都可以在这个?

+0

你能解释更多关于“在VS2008调试器内部正常工作”吗?您是否使用内置的Visual Studio Web服务器在本地查看该页面?该值是否显示在页面上? – 2010-06-23 21:00:30

+0

是的,使用内置的服务器,数值显示正确。 – OldJim 2010-06-23 22:00:46

+0

可以请你在这里发布和asp:SqlDataSource的select命令,可能问题在于Select。 – Aristos 2010-07-09 07:07:46

我终究不知道到底发生了什么,但是通过启用DataSource中的“启用插入”,“启用更新”和“启用删除”选项,问题得以解决,列开始正常显示即使我不使用任何这些函数,GridView仅用于显示数据。

我不知道为什么有一件事会被连接到另一件事上,我最好的猜测是,也许要使用TemplateFields,您必须启用这些选项。

我的任何活动,现在正在工作,这要感谢那些曾经试图帮助过的人。

我嘲笑你描述的表和.aspx页面,并没有任何问题。我的直觉说这不是一个代码问题,而是一个部署问题。我想知道:

  1. 您是否设置了“网站”项目或“Web应用程序”?
  2. 如果您使用的是“网站”项目,您选择了哪些选项进行部署(例如:“允许此预编译站点可更新”,“使用固定命名和单页装配”等)
  3. 您是否尝试过部署到Web服务器上的新干净区域,而不是过度使用以前的版本?
+0

马特,该项目被设置为一个“网络应用程序”,在阅读您的文章后,我创建了一个新的“网站”项目,并得到了完全相同的结果,我只有“允许此预编译网站可更新”在Web服务器上创建了一个新区域并从头开始重新部署,没有任何改变,有没有其他测试可以做?提前致谢。 – OldJim 2010-07-13 01:48:24

+0

拍摄。“网站”项目比“网络应用程序”项目更麻烦,所以我希望你的问题是相反的。 – mattmc3 2010-07-13 02:40:31

您使用了哪些方法来确保您在服务器上查看的版本与您在开发计算机上的版本相同?

也许尝试在开发页面的底部添加注释,然后重新部署。如果您看不到已发布版本的评论,则表明您的部署有其他问题。

+0

我已经做到了,我甚至从服务器上清理了所有东西,从零开始重新创建了所有内容,但我确信版本匹配,感谢您花时间回答。 – OldJim 2010-07-13 00:07:08