我想有一个按钮,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(容器)上得到的东西;:
答案 0 :(得分: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的名称。
答案 1 :(得分:2)
在按钮点击事件中使用此功能。
TextBox t = new TextBox();
t.ID = "txt";
this.form1.Controls.Add(t);
你可以使用这个添加任意数量的文本框..但是当回发发生时,它们很难管理。请参阅以下链接以了解有关动态控件和回发的更多信息..
答案 2 :(得分:0)
我认为在Javascript中,您可以这样使用。希望这有助于你...
var element = document.createElement("jsTextBox");
//为元素分配不同的属性。
element.setAttribute("value", "text");
<SpanElement>.appendChild(element);