0
A
回答
0
您可以使用Repeater的ItemTemplate來放置必要的控件。下面是一個例子:
<asp: Repeater>
<ItemTemplate>
<asp:CheckBox ID="cbkWhatever" runat="server" Checked='<%# Eval("CbkDataField") %>' />
All other items for Repeater ...
</ItemTemplate>
</asp:Repeater>
1
也許,這樣的事情?
Default.aspx的
<%@ Page Language="C#" %>
<script runat="server">
protected override void CreateChildControls()
{
base.CreateChildControls();
LoadUserControl();
}
private void LoadUserControl()
{
ph.Controls.Clear();
Control c = LoadControl("~/WebUserControl.ascx");
c.ID = "foo";
ph.Controls.Add(c);
}
</script>
<html>
<body>
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="ph" runat="server" />
</div>
<asp:Button runat="server" />
</form>
</body>
</html>
WebUserControl.ascx
<%@ Control Language="C#" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
{
DataTable dt = GetRawDataTable();
dt.Rows.Add(dt.NewRow());
rpt.DataSource = dt;
rpt.DataBind();
}
}
private static DataTable GetRawDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("product", typeof(string)));
dt.Columns.Add(new DataColumn("checked", typeof(bool), "false"));
return dt;
}
protected void OnBtnAddClicked(object sender, EventArgs e)
{
DataTable dt = GetRawDataTable();
foreach (RepeaterItem ri in rpt.Items)
{
TransferFromPage(ri, dt);
}
dt.Rows.Add(dt.NewRow());
rpt.DataSource = dt;
rpt.DataBind();
}
private static void TransferFromPage(RepeaterItem ri, DataTable dt)
{
DataRow row = dt.NewRow();
row["product"] = ((TextBox)ri.FindControl("txtProduct")).Text;
row["checked"] = ((CheckBox) ri.FindControl("chk")).Checked;
dt.Rows.Add(row);
}
protected void OnRptItemCmd(object sender, RepeaterCommandEventArgs ea)
{
switch (ea.CommandName)
{
case "RemoveRow":
DataTable dt = GetRawDataTable();
foreach (RepeaterItem ri in rpt.Items)
{
if (ri.ItemIndex == ea.Item.ItemIndex) continue;
TransferFromPage(ri, dt);
}
rpt.DataSource = dt;
rpt.DataBind();
break;
}
}
</script>
<div>
<table>
<asp:Repeater ID="rpt" runat="server" OnItemCommand="OnRptItemCmd">
<ItemTemplate>
<tr>
<td>
<asp:TextBox ID="txtProduct" runat="server" Text='<%# Eval("product") %>' />
<asp:CheckBox ID="chk" runat="server" Checked='<%# Eval("checked") %>' />
<asp:Button ID="btnRemove" runat="server" Text="-" CommandName="RemoveRow" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<asp:Button ID="btnAdd" runat="server" Text="+" OnClick="OnBtnAddClicked" />
</td>
</tr>
</FooterTemplate>
</asp:Repeater>
</table>
</div>
相關問題
- 1. 中繼器內的用戶控制
- 2. 用戶控件內的中繼器內的訪問控制
- 3. Laravel使用基於用戶進度的遊戲控制器
- 4. 用戶控制基於程序
- 5. laravel基於用戶角色的多個控制器的路由
- 6. Asp.Net WebApi繼承與基本控制器
- 7. ASP.NET MVC基於控制器操作權限的用戶
- 8. XAML用戶控件 - 基於觸發器
- 9. 用戶控制中繼器中的複選框
- 10. 基於SqlDataSource中的數據更改標籤控制屬性在中繼器內
- 11. 查找中繼器內用戶控制的下拉值asp.net
- 12. 在中繼器控制
- 13. 中繼器控制分頁
- 14. 中繼器控制問題
- 15. 中繼器控制對象?
- 16. 對每一行執行基於中繼器控制值的計數C#ASP.NET
- 17. 如何在基於條件的中繼器內停止控制創建?
- 18. 繼承控制器
- 19. ASP.NET中繼器控制 - 獲得中繼器控制內的Hiddenfield值
- 20. asp.net維基用戶控制
- 21. ASP.NET - 用戶控件中繼器
- 22. 改變基於設備的控制器
- 23. 的ActionLink/RouteLink基於URL不控制器
- 24. 基於角色的控制器訪問
- 25. 基於資源的ACL vs基於控制器的ACL
- 26. 是否有基於瀏覽器的版本控制客戶端?
- 27. 基於用戶輸入繼承課程
- 28. 如何限制基於控制器訪問登錄的用戶在ROR角色
- 29. 使用VB配置中繼器控制
- 30. 娛樂的用戶控制中的動態控件基於在另一個用戶控件中的選擇
你說的預定義是什麼意思?先生,需要多一點的時間繼續下去。 – 2011-04-19 07:19:54
每行必須包含複選框。 – Alexandre 2011-04-19 07:35:57
這沒有幫助。中繼器必須具有預定義的複選框和表格佈局。 – Alexandre 2011-05-09 06:47:38