我觉得这是一个简单的问题,但无法在任何地方找到答案。我们有一个接口,我们正试图转移到ASP.NET控件。它目前看起来像:
<link rel=""stylesheet"" type=""text/css"" href=""/Layout/CaptchaLayout.css"" />
<script type=""text/javascript"" src=""../../Scripts/vcaptcha_control.js""></script>
<div id="captcha_background">
<div id="captcha_loading_area">
<img id="captcha" src="#" alt="" />
</div>
<div id="vcaptcha_entry_container">
<input id="captcha_answer" type="text"/>
<input id="captcha_challenge" type="hidden"/>
<input id="captcha_publickey" type="hidden"/>
<input id="captcha_host" type="hidden"/>
</div>
<div id="captcha_logo_container"></div>
</div>
然而,我看到ASP.NET控件的所有示例都允许基本功能 - 即
public class MyControl : Panel
{
public MyControl()
{
}
protected override void OnInit(EventArgs e)
{
ScriptManager.RegisterScript( ... Google script, CSS, etc. ... );
TextBox txt = new TextBox();
txt.ID = "text1";
this.Controls.Add(txt);
CustomValidator vld = new CustomValidator();
vld.ControlToValidate = "text1";
vld.ID = "validator1";
this.Controls.Add(vld);
}
}
不允许我们需要的详细布局。有关如何组合布局和功能的任何建议,仍然有一个ASP控件,我们可以插入页面?最终目标是控件的用户可以直接进入:
<captcha:CaptchaControl ID="CaptchaControl1"
runat="server"
Server="http://localhost:51947/"
/>
并查看工作控制。
对于这个的基本性质感到抱歉,非常感谢任何帮助。
答案 0 :(得分:0)
有几种方法可以做到这一点。您可以创建自定义控件或用户控件。我认为你会发现用户控制更容易。它允许您像常规页面一样布置控件的一部分。以下是一些示例文档:http://msdn.microsoft.com/en-us/library/26db8ysc(VS.85).aspx
相比之下,自定义控件通常会在代码中执行所有渲染(如您所示的示例)。以这种方式制作你的第一个控件更难。
答案 1 :(得分:0)
虽然您可能希望查看用户控件,但以下页面提供了使用Web控件执行此操作的示例。 http://msdn.microsoft.com/en-us/library/3257x3ea.aspx Render()方法为控件执行实际HTML的输出。