剑花 烟雨

   江南  好 风景旧曾谙 日出江花红胜火 春来江水绿如蓝 能不忆东北

理想中的建筑师应该是一个诗人、数学家、精通历史、精通心理学、熟悉音乐、了解医学、还要具备天文学和计算的基本知识。
                                                                                                                         ------------------公元前25年,罗马建筑学家Vitruvius
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

条件:
1,文件修改:三个文件.
         summary.aspx    summary.cs SuperGrid.cs
         summary.aspx中是用户界面的定义.summary.cs是aspx文件的后台代码.summary负责使用自定义控件SuperGrid.SuperGrid.cs是自定义用户控件的源代码.
  (1)在summary.aspx要注意,对于例子程序中的文件中的控件的注册是需要修改的地方.其代码:

1<%@ Page Language="C#" Inherits="BWSLib.MyPage" Src="Summary.cs" Trace="false" %>
2<%@ Register TagPrefix="expo" Namespace="BWSLib" Assembly="SuperGrid" %>

  根据自己的应用程序进行相应的修改,这个页面应在自己的应用中重新建立同名的aspx.只修改

<%@ Register TagPrefix="expo" Namespace="BWSLib" Assembly="SuperGrid" %>

<%@ Register TagPrefix="可自己定义" Namespace="你的应用程序的命名空间" Assembly="SuperGrid(不要动)" %>

  在用户控件声明的位置的代码

<expo:SuperGrid id="grid" runat="server" 
    ...
    
>
....
</expo:SuperGrid>
改为TagPrefix的内容"可自己定义",参照上面的改动.

<可自己定义:SuperGrid id="grid" runat="server" 
    ...
    
>
....
</可自己定义:SuperGrid>

  (2)summary.cs文件的修改,要将与自动生成的代码同名的函数的内容从源summary.cs拷贝到codebehind中.不同名的函数,直接拷贝到类中即可.
  (3)这一步是最重要的,修改SuperGrid.cs产生用户控件的代码.
要把SuperGrid.cs中的命名空间名命名为你的应用程序的namespace.然后进行编译.代码如下:

1csc /t:library SuperGrid.cs
2@echo off
3copy SuperGrid.dll c:\inetpub\wwwroot\bin

将以上代码放入一个记事本中存为.bat文件,与SuperGrid.cs放在相同的文件夹下.这个批处理文件的作用就是编译刚才改好的SuperGrid.cs并且把生成的.dll文件放入c:\inetpub\wwwroot\bin中.

注意:The batch file assumes that the Web server is on disk C. Edit it if this does not match 
your system settings.

2,在你的应用程序中加入SuperGrid.cs文件.在解决方案中右击你的应用程序所在的文件夹"添加现有项",选中SuperGrid.cs.加入以后还要做相应的修改,把刚才修改的namespace改为不与你的命名空间同名的任何一个标识符.
  如果命名空间与你的应用程序的命名空间相同的话,就会出现错误:基类包括字段“grid”,但其类型(OfficeSystem.Pmis.Test.SuperGrid)与控件(OfficeSystem.Pmis.Test.SuperGrid)的类型不兼容
  

3,添加引用
  在解决方案中右击,添加引用,导航到c:\inetpub\wwwroot\bin目录下面,找到SuperGrid.dll加入即可.
4,总结
  在使用自定义的用户控件的时候,需要注意的事项就是这些了.对于没有经验的程序员,是需要分步骤来介绍如何使用的.这是我在使用自定义的用户控件的时候遇到了问题,然后把它总结出来.在介绍的时候顺序要注意,特别是(3)和2不可反了,其实就是编译好的dll必须和你应用程序的namespace相同,而应用程序中的cs的namespace必须要和其文件名也就是类名相同.知道这个了,走反了步骤也可以修改的.不过最好是按着步骤一步一步的去做,这样应该不会有问题的.我在使用的时候遇到的问题就是(3),2两个步骤,查了好多的网页都是就事论事,没有一个完整的办法,既然自己做完了,就写出来吧,防着自己以后忘记了,如果有人看到了也可以做一下参考.
 

count hit
欢迎您到紫阁阳光坐客