创建可重复使用的控件ascx-一页只能有一个服务器端 Form 标记?
通过学习别人开发的的系统,发现建立一个文件夹如ascx,里面放有ascx文件(web用户控件文件),在其他页面可以灵活调用,特别是一些如head,foot,页面左边的menu等.所以,要研究下,顺便改进下以往的一个系统.
1、在ASCX里面写代码的意义就是可以更灵活开发,而且可以更好的代码复用。你可以开发几个通用的用户控件,就和.net提供的那些控件一样,灵活的放到你用到的页面上。但建立文件的时候要注意
html格式代码如:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="head1.ascx.cs" Inherits="ascx_head_1" %>
<script type="text/javascript">
。。。
</script>
<asp:Label ID="Label1"
</asp:Label>
2、调用方法:
先在<%@ Page Language="C#"...%>下注册
<%@ Register TagPrefix="asc_head1" TagName="asc_head1" Src="~/ascx/head1.ascx" %>
然后在需要用到该控件的地方声明:
<asc_head1:asc_head1 ID="asc_head1" runat="server" />
这样就可以了.
3 \ 注意一点:如果ascx控件中有需要用到form,而aspx调用页面中也有form,则需要在ascx中先删除form标志然后采取
<form runat="server">
<uc1:usercontrol1 .../>
<uc2:usercontrol2.../>
</form>
另外记得要注册控件到页面上:如:
<%@ Register Src="usercontrol1.ascx" TagName="usercontrol1"
TagPrefix="uc1" %>
就这样就可以了。
否则会出现 "一页只能有一个服务器端 Form 标记。”的错误提示"
4\如果ascx中有超级链接,则需要记得加上 "~/"这个标志,这样,指向不会出错哦。否则,你会发现一大堆错误的.
终于又有一点进步了。很是开心.鼓励下自己先.