小编J T*_*J T的帖子

ToDataSourceResult扩展不填充DataSourceResult对象

KendoUI添加的扩展方法(ToDataSourceResult)似乎在Pages> Page#1上失败.它在第一次加载页面时工作正常,但是当我尝试使用它进行虚拟滚动时,为了获取页面,2,3,4 ... N异步,该方法忽略了我正在尝试的IEnumerable对象中的所有数据改造.

我的代码如下:

我有一个MVC控制器,可以像这样获取数据:

Database database = Database.GenerateDatabase();
ResultSet queryResults = database.GetEvents( 
    FilterHelper.GenerateQueryCriteria((List<IFilterDescriptor>) request.Filters, request.Page, request.PageSize) 
);
Run Code Online (Sandbox Code Playgroud)

Database.GetEvents返回一个对象,如下所示:

public class ResultSet {

    public List<ResultSetRow> Set;
    public int PageRowCount;
    public int TotalRecordCount;
}
Run Code Online (Sandbox Code Playgroud)

每个ResultSetRow,是一个具有1个字符串,2个int作为属性的类的实例.

此时,我设置了一个断点并检查ResultSet.Set的内容.数据库使用request.PageSize指定的记录正确填充List.我已确认正在为任何和所有页码返回结果.

下一阶段,一切都很糟糕:

DataSourceResult result = ((IEnumerable<ResultSetRow>) queryResults.Set).ToDataSourceResult(request);
Run Code Online (Sandbox Code Playgroud)

我检查DataSourceResult对象的内容,其数组属性'Data'为空.

为什么我的模型(ResultSetRow)无法转换为Kendo的DataSourceResult对象?

一些额外的信息:

  • 未使用聚合,组,排序和过滤器.
  • Database.GetEvents返回的结果数与所请求页面的大小相匹配.

感谢您的帮助SO社区

asp.net-mvc kendo-ui

5
推荐指数
1
解决办法
7850
查看次数

优化:在多个对象使用之前预分配一块堆内存 - 收益?

通过提前分配堆内存并增量填充它是否可以大幅提高性能?

考虑下面非常简单的例子:

byte * heapSpace = malloc (1 000 000);
int currentWriteSpot = 0;

struct A {
  int x;
  byte * extraSpace;
  int extraSpaceLength;
};

//a1 needs 10 bytes of extra storage space:
A a1;  
a1.x = 2;
a1.extraSpace = heapSpace + currentWriteSpot;
a1.extraSpaceLength = 10;

currentWriteSpot += 10;

//a2 needs 120 bytes of extra storage space:
A a2;
a2.x = 24;
a2.extraSpace = heapSpace + currentWriteSpot;
a2.extraSpaceLength = 120;

currentWriteSpot += 120;

// ... many more elements added

for …
Run Code Online (Sandbox Code Playgroud)

c c++ memory optimization

3
推荐指数
1
解决办法
4365
查看次数

带有字符串文字的C空指针

使用ARM,C编译器,我可以成功编译并运行以下代码:

static char * myString = 0;

void myfunc(int x){

   if (x <= 0)
       myString = "Hello World";
   else 
       myString = "This is a different string with a different length";

}

int main(){

    myfunc(-1);
    printf("%s\n", myString);
    myfunc(2);
    printf("%s\n", myString);
}
Run Code Online (Sandbox Code Playgroud)

为什么这样做?

指针不应该是NULL指针吗?

至少,不应该在只读内存位置分配字符串文字吗?

编辑:它是一个C++编译器

EDIT2:为什么在myfunc超出范围后,字符串文字存在于静态范围内?字符串文字是否未在堆栈中声明?什么时候他们被解除分配?

谢谢!

c c++ string pointers arm

3
推荐指数
1
解决办法
840
查看次数

引用link.exe的奇怪VC链接器错误LNK1107

我出现了一个非常奇怪的链接器错误:

link.exe : fatal error LNK1107: invalid or corrupt file: cannot read at 0x270
Run Code Online (Sandbox Code Playgroud)

但这很奇怪,因为通常错误消息会告诉您哪些对象无效或已损坏.换句话说,通常此错误消息看起来像这样:

myDLL.dll : fatal error LNK1107: ....
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,无效对象是正在运行的应用程序本身(link.exe)!

我已经尝试用另一个我知道有效的副本替换可执行文件.同样的错误.

我正在运行的命令是这样的:

../vendor/microsoft/msdev80_2005/VC/bin/link.exe /NOLOGO /SUBSYSTEM:CONSOLE /LIB
PATH:../vendor/microsoft/msdev80_2005/VC/atlmfc/lib /LIBPATH:../vendor/microsoft
/msdev80_2005/VC/lib /LIBPATH:../vendor/microsoft/msdev80_2005/VC/PlatformSDK/Li
b /LIBPATH:lib/win32/dbg /OUT:bin/win32/dbg/bugshow.exe Advapi32.lib ws2_32.lib
bugshow/obj/win32/dbg/main.o libA.lib libB.lib libC.lib libD.lib
Run Code Online (Sandbox Code Playgroud)

main.o正在使用以下编译器指令进行编译:

../vendor/microsoft/msdev80_2005/VC/bin/cl.exe /nologo /X /w /EHsc -I../vendor/m
icrosoft/msdev80_2005/VC/atlmfc/include -I../vendor/microsoft/msdev80_2005/VC/in
clude -I../vendor/microsoft/msdev80_2005/VC/PlatformSDK/Include /D_WIN32 /DBOOST
_USE_WINDOWS_H /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x0501 /DBOOST_THREAD_USE_LI
B /DBOOST_ALL_NO_LIB /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Z7
/MTd /c -I../vendor/boost.org/boost/1.45.0/include /Fobugshow/obj/win32/dbg/main.o 
bugshow/main.cpp
Run Code Online (Sandbox Code Playgroud)

任何想法为什么link.exe会像这样失败?

更新:

当我将link.exe所在的文件夹添加到我的PATH,然后调用没有路径前缀的link.exe时,我收到以下错误:

LINK: fatal error LNK1181: cannot open input file …
Run Code Online (Sandbox Code Playgroud)

c++ linker visual-studio-2005

3
推荐指数
1
解决办法
4694
查看次数

最快的预打包键值对搜索

我想在c ++(伪代码)中实现以下数据结构:

Map<Integer, Integer>    // Key->Value pairs

Map.put(1,6);
Map.put(2,5);
Map.put(6,89);
Map.put(7,23);
... etc ...

Map.get(2) .... returns 5
Run Code Online (Sandbox Code Playgroud)

换句话说,给定整数对,其中一个是查找键,什么是最快的库实现,让我从其中一个键检索值?不需要对Value-> Key进行相反的搜索.

该地图的大小可能大约为10 000个元素.

我假设二叉树搜索会产生最快的查找时间?是std:映射使用的最佳工具吗?boost会提出任何替代方案吗?

c++ algorithm boost stl data-structures

0
推荐指数
1
解决办法
1447
查看次数