1

我想要一个按钮,它的 onclick 将动态创建一个文本框而无需任何回发。我试图使用更新面板来做到这一点,但直到现在我还没有设法做到这一点。单击按钮时不会创建任何内容。以下是我使用的代码:

 <asp:PlaceHolder ID="textboxes" runat="server"/>

     <asp:ScriptManager ID="scriptMgr" runat="server" />
                <asp:UpdatePanel ID="updatePnl" runat="server">
                    <ContentTemplate>
                        <div>
                            <asp:Button id="Button" text="Add Destination" OnClick="btnCreate_Click" runat="server"/>
                        </div>
                    </ContentTemplate>
                </asp:UpdatePanel>

代码隐藏

  protected void btnCreate_Click(object sender, EventArgs e)
        {
             textboxes.Controls.Add(new TextBox() { ID = "txt" + 1 });

        }

这就是我在aler(容器)上得到的;:

在此处输入图像描述

4

3 回答 3

2

您必须使用 OnClientClick 创建没有回发的文本框

<asp:Button id="Button" text="Add Destination" OnClientClick="return CreateTxt(); runat="server"/>

<script type="text/javascript">


function CreateTxt()
{
    var container = document.getElementById("myContainerDiv");
    var html = document.getElementById('myContainerDiv').innerHTML;
    html = html + "<input type=text ... /><br />";
    container.innerHTML= html;
   return false;
}

</script>

myContainerDiv 是要添加文本框的 div 的名称。

于 2013-03-11T10:13:42.790 回答
2

在按钮单击事件中使用它。

    TextBox t = new TextBox();
    t.ID = "txt";
    this.form1.Controls.Add(t);

您可以使用它添加任意数量的文本框。但是当回发发生时,它们很难管理。请参阅下面的链接以了解有关动态控件和回发的更多信息。

1.动态 Web 服务器控件和视图状态

2.动态 Web 控件、回发和视图状态

于 2013-03-11T10:16:44.007 回答
0

我认为在 Javascript 中,您可以这样使用。希望这可以帮助你...

var element = document.createElement("jsTextBox"); 

    //为元素分配不同的属性。

    element.setAttribute("value", "text");
<SpanElement>.appendChild(element);
于 2013-03-11T11:04:46.533 回答