• [ASP.NET]获取用户控件对象的引用


    如果在aspx页面中使用了用户控件,很有可能需要获取对这个控件对象的引用,来执行某些操作。获取控件引用的方法一般都是调用FindControl方法,不过这个方法返回的是Object类型,还需要进行强制类型转换。于是,问题来了:如何获取用户控件的类型?

    在第一次实践中,我使用的是ASP命名空间中自动生成的类型。例如,我创建了一个名为VictoryForceLabel.ascx的用户控件,在ASP命名空间中就会自动生成一个controls_victoryforcelabel_ascx的类型。于是获取用户控件引用的语句如下:

    ASP.controls_victoryforcelabel_ascx victoryForceLabel = (ASP.controls_victoryforcelabel_ascx)this.FindControl("VicctoryForceLabel");

    这在测试的时候完全没有问题,一切正常。可是一旦发布网站,总是会出现一条错误消息:

    命名空间“ASP”中不存在类型或命名空间名称“controls_victoryforcelabel_ascx”(是否缺少程序集引用?)

    这个错误很让人困惑,在网上搜了一下,发现是使用了错误的类型。其实用户控件的类型并不是ASP命名空间中自动生成的那个,而是在控件代码文件中的类型。对于上述用户控件,这个类型是VictoryForceLabel.ascx.cs文件中定义的类Controls_VictoryForceLabel。把类型替换后,发布成功。

    至于ASP命名空间中自动生成的类型有什么用,为什么测试的时候一切正常,回答这些问题有待更深入的学习。

  • 相关阅读:
    励志
    哈佛大学用这12张图,教育了10亿人
    5分钟弄懂Docker!
    第四节:Web爬虫之pyquery解析库
    第十节:numpy之数组文件操作
    第三节:Web爬虫之BeautifulSoup解析库
    国嵌内核驱动进阶班-7-1(Ioctl设备控制)
    国嵌内核驱动进阶班-6-4 竞争与互斥(2)
    国嵌内核驱动进阶班-6-4 竞争与互斥
    C++类对象的内存结构
  • 原文地址:https://www.cnblogs.com/zplutor/p/1561247.html
Copyright © 2020-2023  润新知