- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 asp.net 页面(C# 代码隐藏),在 page_load 中有各种返回匿名类型的 linq 查询,例如:
var customersAdded = from r in AddedRecords
select new { Ref = r.CustomerRef, Name = r.Customer_Name };
在页面上,我有一个名为“导出到 excel”的按钮,在该按钮单击事件中,我尝试引用 customersAdded。它说它在上下文中不存在。我知道我过去使用以下方法克服了类似的问题:
if (File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/App_Variants/" + GetUserTheme().ToString() + "/images/" + i.ImageUrl)))
但到目前为止还没有运气。
那么问题来了,如何引用变量呢?作为引用,如果我说要引用控件中的值(例如页面上的文本框),相同或不同的方法适用吗?
谢谢!
标记
最佳答案
看起来您只是将变量声明为 Page_Load
的局部变量。要在任何其他方法中引用该变量,它至少需要是该类的成员。当然,您使用的是匿名类型,并且类型本身也需要在范围内。
解决该问题的一种方法是在类中声明类型,可能只是作为内部结构。然后,该类型不再是匿名的,因此您可以自由地将类成员声明为新类型的集合。您可以在 Page_Load
中分配给该变量,然后在您的类中的其他地方访问该变量。
编辑:
我在评论中提到的各种“延迟加载”不是带有 lazy
关键字的语言特性,也不是涉及 yield
等的任何东西,而不仅仅是这个:
private IQueryable<AddedRecord> _customersAdded;
// make this public if you want to access outside the class
private IQueryable<AddedRecord> CustomersAdded
{
get
{
if (_customersAdded == null)
{
// replace next statement with the query you need
_customersAdded = AddedRecords.Where(something);
}
return _customersAdded;
}
}
现在,如果您需要更多参数来进行此查询,您始终可以提前填充 _customersAdded。诚然,这是一个微不足道的例子。
关于c# - c# 中 asp.net 代码隐藏的变量作用域(希望是简单的!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346143/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!