Tôi đang cố gắng thêm điều khiển trên trang asp.net C#, khi người dùng nhấp vào thêm một trang khác. Tôi đang sử dụng bảng và muốn chắp thêm các điều khiển trong bảng đó. Ngoài ra hãy cho tôi biết, Làm thế nào tôi sẽ nhận được các giá trị điều khiển trong mã sau khi một hình thức được gửi đến máy chủ.Tự động thêm điều khiển javascript Asp.net C#
6
A
Trả lời
8
Đây là một ví dụ jQuery, hy vọng nó sẽ giúp!
ASPX:
<head id="Head1" runat="server">
<title>Controls</title>
<script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btnAdd").click(function() {
var field = $("#field").val();
var input = "<input name='parameters' id='field' type='text' />";
var newRow = "<tr><td>" + field + "</td><td>" + input + "</td></tr>";
$('#controls').append(newRow);
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="field" type="text" />
<input id="btnAdd" type="button" value="Add" />
<table id="controls" cellpadding="10" cellspacing="10">
</table>
<asp:Button ID="btnProcess" runat="server" Text="Process" OnClick="Process" />
</div>
</form>
</body>
Mã đằng sau
protected void Process(object sender, EventArgs e)
{
var parameters = Request.Form["parameters"];
if (parameters != null && parameters.Count() > 0)
{
//Now you have access to the textbox values,perform any additional processing
parameters.Split(',').ToList().
ForEach(p =>
{
Response.Write(p + "<br />");
});
}
}
Và đây là khác nếu bạn muốn làm tất cả mọi thứ trên server.Problem với phương pháp này là khi bạn thêm điều khiển tự động chúng biến mất khi đăng bài trở lại và bạn phải tiếp tục tạo lại chúng trong Page_Load
sẽ bổ sung quá trình xử lý đáng kể cho máy chủ của bạn, tôi khuyên bạn nên gắn bó với tùy chọn jQuery
ASPX:
<asp:TextBox ID="txtFieldName" runat="server"></asp:TextBox>
<asp:Button ID="btnAddControl" runat="server" Text="Add" OnClick="Add" />
<asp:Table EnableViewState="true" CellPadding="2" CellSpacing="2" BorderWidth="2" BorderStyle="Solid" GridLines="Both" ID="table"
runat="server">
<asp:TableHeaderRow>
<asp:TableHeaderCell Text="Field" />
<asp:TableHeaderCell Text="Value" />
</asp:TableHeaderRow>
</asp:Table>
<asp:Button ID="btnPost" runat="server" Text="Post" OnClick="Post" />
Mã đằng sau:
public List<string> rows = new List<string>();
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["Rows"] != null)
{
rows = (List<string>)ViewState["Rows"];
if (rows.Count > 0)
{
foreach (var row in rows)
{
TextBox textbox = new TextBox();
textbox.Width = 300;
table.Rows.Add(GetRow(row,textbox));
}
}
}
}
protected void Add(object sender, EventArgs e)
{
string row = txtFieldName.Text;
if (!String.IsNullOrEmpty(row))
{
rows.Add(txtFieldName.Text);
TextBox textbox = new TextBox();
textbox.Width = 300;
table.Rows.Add(GetRow(row, textbox));
ViewState["Rows"] = rows;
}
}
private TableRow GetRow(string text, WebControl txtName)
{
TableRow tr = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = text;
TableCell cell2 = new TableCell();
cell2.Controls.Add(txtName);
tr.Cells.Add(cell1);
tr.Cells.Add(cell2);
return tr;
}
protected void Post(object sender, EventArgs e)
{
if (table.Rows.Count > 0)
{
System.Diagnostics.Debugger.Break();
//i=1 because we want to skip the header row
for (int i = 1; i < table.Rows.Count; i++)
{
//Examine the values and do further processing...
string field = table.Rows[i].Cells[0].Text;
string value = ((TextBox)table.Rows[i].Cells[1].Controls[0]).Text;
}
}
}
1
Nếu bạn đang thêm điều khiển phía máy khách động, chúng sẽ nằm trong đối tượng Request.Form dưới dạng giá trị. Bạn có thể lặp lại nội dung của bộ sưu tập này. Xin lưu ý rằng bảng sẽ phải được chứa trong một phần tử biểu mẫu nếu không chúng sẽ không được đăng.
Các vấn đề liên quan
- 1. Tự động thêm các điều khiển trong ASP.NET Repeater
- 2. Thêm điều khiển tự động trong FlowLayoutPanel
- 3. ASP.NET: thêm điều khiển phía máy khách
- 4. ASP.NET 2.0 thêm kiểu động vào trang trong điều khiển
- 5. Thêm <br/> động giữa các điều khiển asp.net
- 6. Điều khiển động được thêm vào trong Asp.Net
- 7. Tự động thêm điều khiển người dùng vào bộ lặp
- 8. Thêm điều khiển tự động để một UpdatePanel trong ASP.NET AJAX
- 9. asp.net tự động thêm GridViewRow
- 10. Thêm điều khiển vào Điều khiển người dùng động
- 11. Thêm một điều khiển vào tiêu đề trang trong ASP.NET
- 12. WPF: Cách tự động thêm các điều khiển trong cửa sổ WPF được tạo động
- 13. Thêm các điều khiển JavaFX2 động
- 14. Thêm điều khiển động trong WPF MVVM
- 15. "Thêm bộ điều khiển"/"Thêm chế độ xem" trong ứng dụng ASP.NET MVC/WebForms ASP.NET
- 16. C# Thêm kiểu dáng vào điều khiển
- 17. Tự động gán một thuộc tính trong một điều khiển người dùng trong điều khiển lặp ASP.NET
- 18. ASP.NET: Cuộn để điều khiển
- 19. ASP.Net: Điều khiển người dùng được thêm vào trình giữ chỗ tự động không thể truy lục giá trị
- 20. C# Bảng điều khiển có tính năng tự động ghi - Đặt lại vị trí Srollbar trên tiêu điểm điều khiển
- 21. Thêm mảng điều khiển động vào biểu mẫu
- 22. Thiết kế hành động điều khiển ASP.NET MVC
- 23. Thứ tự các điều khiển trong thuộc tính Điều khiển của biểu mẫu trong C#
- 24. lỗi asp.net tạo điều khiển
- 25. Thay đổi điều khiển truy cập của điều khiển ASP.NET
- 26. Bảng điều khiển ExtJs - thêm các thành phần động
- 27. ASP.NET MVC - Hành động hiện tại từ mã điều khiển?
- 28. Một số phương pháp hay nhất để tự động thêm javascript vào trang asp.net là gì?
- 29. Rails - Hai bộ điều khiển hoặc thêm hành động?
- 30. ASP.NET MVC: Cấu trúc bộ điều khiển
là nó có thể để thêm thông qua máy chủ, tôi đã từng làm tại phía khách hàng. nhưng ở đây tôi muốn làm tại serverside, vì vậy tôi có thể nhận được tất cả các giá trị trong codebehind –
Chỉ như là một phần của một repost, mà là clunky từ một quan điểm UI IMHO. Bằng cách sử dụng Request.Form bạn * có thể * nhận được các giá trị trong codebehind. –
Bạn có thể sử dụng các bảng cập nhật nhưng chúng thực sự là một repost được xếp chồng lên nhau và gây ra rất nhiều phía máy chủ chất thải. –