在ASP.NET中格式化控件

时间:2010-04-14 21:19:27

标签: asp.net javascript css controls formatting

我觉得这是一个简单的问题,但无法在任何地方找到答案。我们有一个接口,我们正试图转移到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/"
/>

并查看工作控制。

对于这个的基本性质感到抱歉,非常感谢任何帮助。

2 个答案:

答案 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的输出。