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. Laravel使用基於用戶進度的遊戲控制器
- 3. laravel基於用戶角色的多個控制器的路由
- 4. ASP.NET MVC基於控制器操作權限的用戶
- 5. XAML用戶控件 - 基於觸發器
- 6. 用戶控制中繼器中的複選框
- 7. 查找中繼器內用戶控制的下拉值asp.net
- 8. 中繼器控制對象?
- 9. 中繼器控制分頁
- 10. 對每一行執行基於中繼器控制值的計數C#ASP.NET
- 11. 如何在基於條件的中繼器內停止控制創建?
- 12. 繼承控制器
- 13. asp.net維基用戶控制
- 14. ASP.NET - 用戶控件中繼器
- 15. 基於角色的控制器訪問
- 16. 的ActionLink/RouteLink基於URL不控制器
- 17. 基於資源的ACL vs基於控制器的ACL
- 18. 基於用戶輸入繼承課程
- 19. 如何在基於用戶/憑證的web api中動態顯示控制器
- 20. 當用戶控制用作基本用戶控件時,用戶控件中的服務器ccntrols爲空(asp.net)
- 21. 中繼器中的AutoCompleteExtender控制
- 22. winforms中的數據中繼器控制
- 23. 基於其他控制事件動態加載用戶控件
- 24. 定製基於用戶
- 25. 在Rails中創建基於控制器的通用路由
- 26. 基於數據更新rootview控制器
- 27. AutoFac注入一個基於控制器
- 28. 春 - 基於標記選擇控制器
- 29. 的CustomValidator基於控制
- 30. ASP.NET:Gridview行內的中繼器控制
你說的預定義是什麼意思?先生,需要多一點的時間繼續下去。 – 2011-04-19 07:19:54
每行必須包含複選框。 – Alexandre 2011-04-19 07:35:57
這沒有幫助。中繼器必須具有預定義的複選框和表格佈局。 – Alexandre 2011-05-09 06:47:38