Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET DataView-行筛选器和应用程序缓存存在问题_Asp.net_Session_Datatable_Dataview_Application Cache - Fatal编程技术网

ASP.NET DataView-行筛选器和应用程序缓存存在问题

ASP.NET DataView-行筛选器和应用程序缓存存在问题,asp.net,session,datatable,dataview,application-cache,Asp.net,Session,Datatable,Dataview,Application Cache,各位下午好-- 我的任务是在一个不熟悉的遗留应用程序中发现并修复一个bug,该应用程序最近做了一些更改,但我没有一个简单的方法(据我所知)来测试我的理论。我希望你的集体知识能为我验证这个测试 此应用程序从数据库将查找列表(舌头扭曲器?)加载到数据表中,并将其作为对象存储在HttpContext.Current.application(一个HttpApplicationState)中 在进行更改之前,其中一个查找表以以下方式(人为)绑定到DropDownList: 其中,“SomeLookUpla

各位下午好--

我的任务是在一个不熟悉的遗留应用程序中发现并修复一个bug,该应用程序最近做了一些更改,但我没有一个简单的方法(据我所知)来测试我的理论。我希望你的集体知识能为我验证这个测试

此应用程序从数据库将查找列表(舌头扭曲器?)加载到
数据表中,并将其作为对象存储在
HttpContext.Current.application
(一个
HttpApplicationState
)中

在进行更改之前,其中一个查找表以以下方式(人为)绑定到
DropDownList

其中,“SomeLookUplastName”是一个只读属性,它从
HttpContext.Current.Application
返回
DataTable
。在绑定到
下拉列表之前,这些更改添加了一些过滤私有
Me.\u lookupList
DataView
)的代码:

Me._lookupList.RowFilter = "SomeTableIDColumn <> " & ... 
由于我不知道如何冒充多个用户攻击本地调试会话,因此将代码更改为使用后一种方法实际上与前一种方法有什么不同吗?过滤
数据表的结果。DefaultView
是否实际将过滤器应用于基础
数据表
,与使用
新数据视图(…)
包装该表不同

DropDownList
绑定后,简单地清除行过滤器是否有意义(这似乎是一个糟糕的解决方案)?我想坚持这个应用程序使用的丑陋的约定,这样我就不会让另一个开发人员感到惊讶,因为他们会得到类似的任务,否则我只会绕过应用程序状态,直接从数据存储库中获取项目

我感谢你的反馈

是否过滤的结果 DataTable.DefaultView实际应用 将筛选器添加到基础数据表 与包装桌子不同 使用新的数据视图(…)

对。它将创建一个应用过滤器的新视图。过滤器不会直接应用于表。按照该模式使用新视图将起作用


顺便说一句,很容易根据调试器测试多个会话。只需打开两个不同的浏览器(IE和FF)并指向同一个应用程序。用户登录可能相同,但会话将是唯一的

是的,我错误地认为IE在浏览器窗口之间共享会话状态,但我认为共享会话的只是同一窗口中的选项卡。我用新代码推出了一个中断修复程序;如果问题解决了,我会回来接受你的回答:)
Me._lookupList.RowFilter = "SomeTableIDColumn <> " & ... 
Me._lookupList = New DataView(TheSession.LookupCache.SomeLookupListName)