排序时ASP.net gridview数据源为null

在这里,我们再次讨论排序中的下一个问题。

这是对这个问题的后续问题

我现在已经创建了一个类型来包含我需要的数据。 但是,当我尝试从gridview获取数据时,它返回null,这意味着我无法排序第一个不存在的任何东西……

任何想法为什么这返回null …

IEnumerable data = gvServers.DataSource; var sorted = data; switch (p) { case "domain": sorted = data.OrderBy(o => o.DomainName); break; default: break; } gvServers.DataSource = sorted; gvServers.DataBind(); 

以上就是我要做的……

在没有看到所有代码的情况下,我不得不假设这是一个PostBack问题。 网站本质上是无状态的,您需要通过在页面请求之间缓存信息或每次检索数据来解决此问题。

我同意马克的观点。 这似乎发生在回发之间。 如果是这样,你就无法访问网格的数据源,因为在第一次绑定并将此网格呈现为html之后,你只会在回发时接收到html,而不是真正的数据源。 您需要将数据源保存在会话中,或者在数据库的每次回发中获取它。

PS,抱歉,伙计们,我的丑陋英语: – [

尝试在Init事件控件中设置数据绑定。

需要指出的另一点是,GridView不会在回发上保留DataSource属性(因为它需要的性能原因)

序列化和往返整个数据源)

Teemu Keiski ASP.NET MVP,AspInsider芬兰,欧盟

来自http://bytes.com/topic/asp-net/answers/828307-gridview1-datasource-null或您使用linq数据源进行yor linq查询。 它会自动处理分拣过程。