【问题标题】:Gridview empty when SelectedIndexChanged called调用 SelectedIndexChanged 时 Gridview 为空
【发布时间】:2011-02-05 15:30:18
【问题描述】:

我有一个动态绑定到数据库查询的 DataGrid。用户在文本字段中输入一些搜索文本,单击搜索,后面的代码使用 LINQ 创建适当的数据库查询(根据字符串搜索表并返回一组有限的列)。

然后将 GridView 数据源设置为查询并调用 DataBind()。

protected void btnSearch_Click(object sender, EventArgs e)
{
    var query = from record in DB.Table
                where record.Name.Contains(txtSearch.Text) //Extra string checking etc. removed.
                select new
                {
                    record.ID,
                    record.Name,
                    record.Date
                };

    gvResults.DataSource = query;
    gvResults.DataBind();
}

这很好用。

当用户选择网格中的一行时,SelectedIndexChanged 事件处理程序从网格中的行(其中一个字段)获取 id,从数据库中查询完整记录,然后填充一组编辑器/详细信息字段记录完整的详细信息。

protected void gvResults_SelectedIndexChanged(object sender, EventArgs e)
{
    int id = int.Parse(gvResults.SelectedRow.Cells[1].Text);
    DisplayDetails(id);
}

这在我正在开发代码的本地机器上运行良好。然而在生产服务器上,函数调用成功,但gvResults上的行和列计数,griview为0 - 表为空。

gridview 的视图状态已启用,我看不到明显的差异。我是否做出了一些幼稚的假设,或者我是否依赖于可能在调试中配置不同的东西?

在本地,我在 VS2008 中运行一个空的 asp.net Web 项目,以加快开发速度。生产服务器运行的是 sitecore CMS,因此配置完全不同。

欢迎提出任何想法或建议。提前致谢!

【问题讨论】:

    标签: c# asp.net gridview select sitecore


    【解决方案1】:

    又在 sitecore 论坛上闲逛了一会儿,我发现了这个 blog post,它解释了一种可能的解决方案。

    我将 <type>System.Web.UI.WebControls.GridView</type> 添加到 Web.config 的 <typesThatShouldNotBeExpanded> 部分,它似乎对我们有用。

    这似乎与sitecore的页面布局渲染管道有关,它扩展了子布局和内部占位符以生成完整的页面渲染。它会访问页面上的 .Net 控件并稍微戳一下它们,这可能会导致某些控件无法正常工作。

    SDN 上有一个关于此的article,尽管您只有拥有足够的 privalegs 帐户才能阅读它。希望这可能对将来的任何其他 sitecore 用户有所帮助。

    【讨论】:

    • 啊,是的,这也可能是真正的原因。这与 Sitecore 如何与页面生命周期挂钩有关,我猜很多人并没有完全理解这一点,也可能是他们的商业机密之一。我写了这篇文章,但除此之外我也一无所知。
    • 哈哈!我实际上并没有查看您的 SO 用户名!非常感谢博客的提醒! SDN 上也有一篇关于此的文章,但除非您拥有他们的帐户,否则它不可用。
    【解决方案2】:

    检查您的 web.config。可能“AutomaticDataBind”属性在一个环境中设置为“false”,而在您的开发盒中设置为“true”。

    显然,我不能确定,但​​我过去曾被类似的问题所困扰,症状与您在此处描述的完全一样 :-)

    附: Sitecore 将此值默认为 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      相关资源
      最近更新 更多