webform用户自定义控件

NetFire 2003-12-01 11:42:52
用户自定义控件,ascx文件,不可能在里面加什么<form id="sss" runat="server" />的阿,居然报错,就说没有加,必须加,ft~~~~~

  我用编程的方式添加用户自定义控件,就出了下面的错误——



Control '_ctl1_user_name' of type 'TextBox' must be placed inside a form tag with runat=server.



  服务器端代码是标准的,我又没有乱改,郁闷——

Control c1 = LoadControl("login.ascx");
Page.Controls.Add(c1);



  我的ascx文件代码——


<%@ Control CodeBehind="login.ascx.cs" Language="cs" AutoEventWireup="false" Inherits="weblogs.login" %>
<!--BEGIN LOGIN MODULE-->
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td width="35%" align="right">
用户名:
<td width="65%"><asp:textbox ID="user_name" runat="server" Width="100px"></asp:textbox></td>
<asp:requiredfieldvalidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" Display="Dynamic" Font-Size="9pt"
ControlToValidate="user_name"></asp:requiredfieldvalidator>
<asp:regularexpressionvalidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="用户名有不合法字符" Display="Dynamic"
Font-Size="9pt" ControlToValidate="user_name" ValidationExpression="^[^<'>*"></asp:regularexpressionvalidator>
</tr>
<tr>
<td height="0" align="right">
密 码:
<td><asp:textbox ID="user_pwd" runat="server" Width="100px" TextMode="Password"></asp:textbox></td>
<asp:requiredfieldvalidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" Display="Dynamic" Font-Size="9pt"
ControlToValidate="user_pwd"></asp:requiredfieldvalidator>
<asp:regularexpressionvalidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="用户密码有不合法字符" Font-Size="9pt"
ControlToValidate="user_pwd" ValidationExpression="^[^<'>*"></asp:regularexpressionvalidator>
</tr>
<tr>
<td colspan="2" height="0" align="center"><asp:label ID="errormessage" runat="server" ForeColor="Red"></asp:label>
<asp:button ID="submit" runat="server" Text="提 交"></asp:button></td>
</tr>
<tr>
<td colspan="2" align="center"><a href="../register.aspx">新用户注册</a></td>
</tr>
</table>
<!--END LOGIN MODULE-->

...全文
172 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2003-12-02
  • 打赏
  • 举报
回复
use a PlaceHolder to position where you want to put your control

<form runat=server>
....
<asp:PlaceHolder id=ph runat=server />
..
</form>

then do
ph.Controls.Add(cl);
NetFire 2003-12-02
  • 打赏
  • 举报
回复
注意 当您使用 Add 方法将控件添加到 ControlCollection 对象时,这些控件将按被处理的顺序放置在集合中。如果您希望将控件添加到集合中的特定位置,请使用 AddAt 方法并指定您要存储该控件的索引位置。


thanks you saucer.
NetFire 2003-12-02
  • 打赏
  • 举报
回复
位置不对了,怎么控制位置呢?
NetFire 2003-12-02
  • 打赏
  • 举报
回复
thanks,let me try
saucer 2003-12-02
  • 打赏
  • 举报
回复
then

change
Page.Controls.Add(c1);
==>
form1.Controls.Add(c1);

NetFire 2003-12-02
  • 打赏
  • 举报
回复
我确定我的aspx页面有
<form runat=server id="form1">
..

</form>
saucer 2003-12-01
  • 打赏
  • 举报
回复
only use
<form runat=server id="form1">
..

</form>

in your aspx page

Control c1 = LoadControl("login.ascx");
form1.Controls.Add(c1);

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧