【问题标题】:How do I add this (recaptcha) form dynamically?如何动态添加此(recaptcha)表单?
【发布时间】:2011-05-11 16:36:19
【问题描述】:

我有一个 .aspx 文件,我想在<script> 标记中动态添加下面的表单和控件。 (页面语言=C#)

<form runat="server">
        <asp:Label Visible=true ID="lblResult" runat="server" />

        <recaptcha:RecaptchaControl
            ID="recaptcha"
            runat="server"
            Theme="red"
            PublicKey="6Ld4PcQSAAAAADvExkhlgujfXixYYeJ0x6zQDZan"
            PrivateKey="6Ld4PcQSAAAAABAg0i2Nk6FMjbstXQqCS2XRDoea"
        />
        <br />
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
</form>

【问题讨论】:

    标签: c# .net asp.net captcha


    【解决方案1】:

    为什么要动态添加?虽然,它不完全是您问题的答案,但更简单的方法是将所述标记放在占位符控件中,并根据您的要求设置占位符的可见性。

    如果您必须动态添加控件,您仍然需要一个占位符(在脚本标记之后)作为父级,然后您可以从代码隐藏创建需要控件层次结构。例如,

    var form = new HtmlForm();
    
    var label = new Label();
    label.ID = "lblResult";
    form.Controls.Add(label);
    
    var captcha = new RecaptchaControl();
    captcha.ID = "recaptcha";
    ...
    
    placeholder.Controls.Add(form);
    

    【讨论】:

    • 如果我要动态更改可见性,它还会在源代码中看到吗?
    • @Adam,如果您将任何服务器控件的可见性设置为 false,则不会为其(或其子项)生成标记。所以它不会从视图源中看到。
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多