【发布时间】: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