【发布时间】:2015-08-19 20:09:11
【问题描述】:
我正在尝试创建一个从空白开始的网页。每按下一个按钮,都会添加一个带有删除按钮的新文本框,以删除他们想要的任何行。这很好用。问题是我无法使用 C# 访问动态创建的控件。
在下面的代码中,我将它们设置为<input,我也尝试过使用<asp:Textbox,但它也不起作用。 Request.Form["txtItemName1"] 总是返回一个空白字符串,我不能在 CS 文件中执行 txtItemName1.Text,因为文本框还不存在。
我想如何从 C# 端访问文本框?
有没有更好的方法来动态创建控件?
<!-- jQuery -->
<script type="text/javascript">
$(window).load(function () {
$(document).ready(function () {
var counter = 1;
$(document).on('click', '.removeButtonByID', function () {
var _name = this.name.replace("btnRemove", "");
if (confirm('Are you sure you want to remove line ' + _name + '? This cannot be undone.')) {
$("#TextBoxDiv" + _name).remove();
}
});
$("#addButton").click(function () {
$('<div />', { 'id': 'TextBoxDiv' + counter }).html(
$('<label />').html('')
)
.append($('<div class="col-sm-1" style="width: 200px; padding-left: 7px; padding-right: 0px;"><input type="text" class="form-control" placeholder="Item Name" runat="server">').attr({ 'id': 'txtItemName' + counter, 'name': 'txtItemName' + counter }))
.append($('<div class="col-sm-1" style="width: 100px; padding-left: 7px; padding-right: 0px;"><input type="text" class="form-control" placeholder="D/I" runat="server">').attr({ 'id': 'txtDI' + counter, 'name': 'txtDI' + counter }))
.append($('<div class="col-sm-1"><label class="checkbox-inline"><input type="checkbox" value="">Subtotal</label>').attr({ 'id': 'subtotal' + counter, 'name': 'chkSubTotal' + counter }))
.append($('<br />'))
.append($('<button type="button"><span class="glyphicon glyphicon-minus"></span></button>').attr({ 'name': 'btnRemove' + counter, 'class': 'btn btn-danger removeButtonByID' }))
.appendTo('#TextBoxesGroup')
counter++;
});
});
});
</script>
<!-- HTML -->
<div id='TextBoxesGroup'>
<!-- Dynamically added textboxes here -->
</div>
<hr />
<button type="button" class="btn btn-default" id='addButton'>
<span class="glyphicon glyphicon-plus"></span>
</button>
【问题讨论】:
-
当您尝试使用 asp:Textbox 时,是否还包括 runat="server"?
-
你是在 ASP.net MVC 中使用 C# 还是只在 ASP.Net 中使用?
-
是的,我做到了。我什至在页面上手动放置了一个 asp:Textbox 只是为了看看我是否可以访问它并且我可以。只是动态控件让我望而却步。
标签: javascript c# asp.net