[英]How to get control of checkbox in repeater
我是這個網站的新手。 我需要asp.net C#的幫助。 在我的示例中,我有一個數據列表控件,其中顯示了一些書的記錄,例如書名,書作者,出版商和書的圖像。因此,當我從這些記錄中購買一本或兩本書時,我會選擇一個復選框。選擇復選框后,我單擊一個按鈕,通過該按鈕我可以獲得有關轉發器中所選記錄的信息。所以我的問題是,當我單擊按鈕時,我如何獲得所選復選框的控件和信息顯示在轉發器中??
謝謝
高畫質
這是如何與復選框一起使用Repeater
的完整示例。 檢查用戶選擇時,商品ID存儲在隱藏字段中,以獲取其他信息。
該示例可能與您的代碼不匹配,因為您未提供任何示例。
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Repeater Example</title>
<script language="C#" runat="server">
public class PositionData
{
private int id;
private string name;
private string _data;
private bool selected;
public PositionData(int id, string name, string data)
{
this.name = name;
this._data = data;
}
public int Id
{
get { return id; }
}
public string Name
{
get { return name; }
}
public string data
{
get { return _data; }
}
public bool Selected
{
get { return selected; }
}
}
void Page_Load(Object Sender, EventArgs e)
{
if (!IsPostBack)
{
ArrayList values = new ArrayList();
values.Add(new PositionData(1, "Prod1", "Info1"));
values.Add(new PositionData(2, "Prod2", "Info1"));
values.Add(new PositionData(3, "Prod3", "Info1"));
Repeater1.DataSource = values;
Repeater1.DataBind();
}
if (IsPostBack)
{
foreach (RepeaterItem i in Repeater1.Items)
{
//Retrieve the state of the CheckBox
CheckBox cb = (CheckBox)i.FindControl("selectUser");
HtmlInputHidden info = (HtmlInputHidden)i.FindControl("fieldName");
String itemInfo = info.Value;
if (cb.Checked)
{
// do whatever you want with selected item
// having it's ID
}
}
}
}
private void Repeater1_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
var myHidden = (HtmlInputHidden)e.Item.FindControl("fieldName");
myHidden.Value = ((PositionData)e.Item.DataItem).Id.ToString();
}
}
</script>
</head>
<body>
<h3>
Repeater Example</h3>
<form id="form1" runat="server">
<b>Repeater1:</b>
<br />
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_OnItemDataBound">
<HeaderTemplate>
<table border="1">
<tr>
<td>
<b>Select this one</b>
</td>
<td>
<b>Name</b>
</td>
<td>
<b>Data</b>
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
Select
<asp:CheckBox ID="selectUser" runat="server" />
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "name") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "data") %>
<input id="fieldName" runat="server" type="hidden" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<br />
<button id="submitButton" runat="server">Submit!</button>
</form>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.