【问题标题】:Field not showing in gridview asp.net 3.5gridview asp.net 3.5中未显示字段
【发布时间】:2010-06-23 20:40:46
【问题描述】:

情况是这样,我有两个表 tblProduct 和 tblCategory,我要做的是填充一个 gridview,我将 LinqDataSource 绑定到网格并在 .dbml(tblProduct.CategoryID 到 tblCategory.身份证)。

在我正在使用的 GridView 中显示来自 tblCategory 的字段,而不是 tblProduct.CategoryID:

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

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

任何人都可以对此有所了解吗?

【问题讨论】:

  • 你能解释更多关于“在 VS2008 调试器中工作正常”吗?您是否使用内置的 Visual Studio Web 服务器在本地查看页面?值是否显示在页面上?
  • 是的,使用内置服务器,值显示正确。
  • 你能把asp:SqlDataSource的select命令贴在这里吗,可能问题出在Select上。
  • @Aristos - 他正在使用 Linq-to-SQL 数据源。不需要 SQL - DataContext 自动为 GridView 提供数据,并检查编译时间,所以这不会是问题所在。

标签: asp.net linq gridview


【解决方案1】:

我模拟了您描述的表格和 .aspx 页面,没有遇到任何问题。我的直觉说这不是代码问题,而是部署问题。我想知道:

  1. 您设置的是“网站”项目还是“网络应用程序”?
  2. 如果您使用的是“网站”项目,您在部署时选择了哪些选项(即:“允许此预编译站点可更新”、“使用固定命名和单页程序集”等)
  3. 您是否尝试过部署到您的网络服务器上一个新的、干净的区域,而不是在之前的版本之上?

【讨论】:

  • 马特,该项目被设置为“网络应用程序”,阅读您的帖子后,我创建了一个新的“网站”项目并得到完全相同的结果,我只有“允许这个预编译网站可更新”检查并在网络服务器上创建了一个新区域并从头开始重新部署它,没有任何改变,我还能做其他测试吗?提前谢谢。
  • 射击。我看到“网站”项目比“网络应用程序”项目遇到更多此类问题,所以我希望你的问题是相反的。
【解决方案2】:

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

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

【讨论】:

  • 我已经做到了,我什至从服务器上清理了整个东西,并从头开始重新创建所有东西,但没有运气,我很肯定版本匹配,感谢您抽出宝贵时间回答。
【解决方案3】:

毕竟我无法弄清楚到底发生了什么,但是通过启用 DataSource 上的“启用插入”、“启用更新”和“启用删除”选项,问题得到了解决,并且列开始在GridView 虽然我不使用任何这些功能,但 GridView 仅用于显示数据。

我不知道为什么一件事会与另一件事相关联,我最好的猜测是,也许要使用 TemplateFields,您必须启用这些选项。

我无论如何,它现在正在工作,感谢那些试图提供帮助的人。

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多