Aspx页面中的Foreach循环如何从datatable添加复选框和标签值。收到所有勾选的复选框值。
我已经在aspx页面中编写了这段代码而不是在aspx.cs中。
<% foreach (Employee myEmp in _empList) {
empName = myEmp.ToString(); %>
<div class="abc">
<div class="pqr">
<asp:Label Text="<% empName %>" runat="server" ID="lblEmpName"></asp:Label></label>
</div>
<div class="xyz">
<asp:CheckBox ID="chkBox" Checked="false" runat="server" />
</div>
</div>
<% } %>
答案 0 :(得分:1)
您可以这样做:
List<user> userList = new List<user>();
foreach (user usr in userList)
{
PlaceHolder1.Controls.Add(new CheckBox()
{
ID = "cb_"+usr.UserId,
Text = usr.Name,
});
}
答案 1 :(得分:1)
我认为向asp.net页面动态添加控件的最佳方法是oninit page-event。
你应该尝试这样的事情。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
/*LinkButton lb = new LinkButton();
lb.ID = "lbAddFilter";
pnlFilter.Controls.Add(lb);
lb.Text = "Add Filter";
lb.Click += new EventHandler(lbAddFilter_Click);*/
// regenerate dynamically created controls
foreach ( var employee in employeeList)
{
Label myLabel = new Label();
// Set the label's Text and ID properties.
myLabel.Text = "Label" + employee.Name.ToString();
myLabel.ID = "Label" + employee.ID.ToString();
CheckBox chkbx = new CheckBox();
chkbx.ID = "CheckBox" + employee.ID.ToString();
chkbx.Text = "Label" + employee.Name.ToString();
MyPanel.Controls.Add(myLabel);
MyPanel.Controls.Add(chkbx);
}
}
答案 2 :(得分:0)
我认为您只是缺少标签的:
或=
。 <%
应该是<%:
。使用:
编码任何html并避免js注入。 =
和:
上的更多info
<% foreach (Employee myEmp in _empList) {
empName = myEmp.ToString(); %>
<div class="abc">
<div class="pqr">
<asp:Label Text="<%: empName %>" runat="server" ID="lblEmpName"></asp:Label>
</div>
<div class="xyz">
<asp:CheckBox ID="chkBox" Checked="false" runat="server" />
</div>
</div>
<% } %>