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

时间:2009-06-11 07:05:55

标签: c# asp.net .net linq sorting

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

这是this question

的后续问题

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

为什么会返回null ...

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

以上就是我要做的......

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:6)

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

P.S。抱歉,伙计们,因为我丑陋的英语: - [

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

要指出的其他事情是GridView不保留DataSource属性 填充了回发(因为它需要的性能原因

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

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

来自http://bytes.com/topic/asp-net/answers/828307-gridview1-datasource-null

或者您使用linq数据源进行yor linq查询。它会自动处理分拣过程。