gpt4 book ai didi

asp.net - ASP .NET - 如何通过转发器进行迭代?

转载 作者:行者123 更新时间:2023-12-02 12:08:25 25 4
gpt4 key购买 nike

我想做的是迭代中继器并读取一些控件值:

   foreach (RepeaterItem iter in TablePanier.Items)
{
string guid = ((HiddenField)iter.FindControl("guid")).Value.ToString();

// nombre exemplaires du livre

int nbExemplaires = int.Parse(((System.Web.UI.WebControls.TextBox)iter.FindControl("txtNbExemplaires")).Text.ToString());

}

如您所见,我有一个 HiddenValue 和一个 TextBox。不幸的是,这不起作用,值无法正确读取。

出了什么问题?

谢谢!

编辑:这是表单的完整代码:

public partial class Panier : System.Web.UI.Page
{
Bussiness.Manager _manager = new Bussiness.Manager("MSSQLSERVER");
IEnumerable<Bussiness.iPanier> _paniers;
CurrencyConvertor _currencyConvertor = new CurrencyConvertor();
Bussiness.iCommande _commande;
int idPanier;

protected void Page_Load(object sender, EventArgs e)
{
if (Session["login"] != null)
{
Security security = new Security();
_paniers = _manager.chargerPannierUtilisateur(Session["login"].ToString());

foreach (Bussiness.iPanier p in _paniers)
{
idPanier = p.id;
TablePanier.DataSource = p.Livres;
TablePanier.DataBind();
}
}

else
{
Response.Redirect("~/Accueil.aspx");
}
}
protected void btnCommande_Click(object sender, EventArgs e)
{


foreach (RepeaterItem iter in TablePanier.Items)
{
// id livre courant
if (iter.ItemType == ListItemType.Item || iter.ItemType == ListItemType.AlternatingItem)
{
string guid = ((HiddenField)iter.FindControl("guid")).Value.ToString();
int nbExemplaires = int.Parse(((System.Web.UI.WebControls.TextBox)iter.FindControl("txtNbExemplaires")).Text.ToString());

}
}
}
}

如您所见,转发器绑定(bind)在构造函数级别。当页面按钮上发生事件时,我尝试读取数据。

有什么想法吗?

最佳答案

取决于您拥有控件的位置。

请注意,中继器有 HeaderItemTemplate、ItemTemplate & AlternateItemTemplate & FooterItemTemplate。

因此,当您迭代转发器的 Item 集合时,您需要在到达控件的对象之前了解要查找的模板。

通常您需要编写如下代码:

foreach(RepeaterItem item in TablePanier.Items){

if(item.ItemType == ListItemType.HeaderItem){
// do something with the header
}
else if(item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem){
// do something with the item
var guid_control = item.FindControl("guid") as HiddenField;
var nbExemplaires = item.FindControl("txtNbExemplaires") as TextBox;
}
else if(item.ItemType == ListItemType.FooterItem){
// do something with the footer
}

HTH。}

关于asp.net - ASP .NET - 如何通过转发器进行迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com