gpt4 book ai didi

c# - 如何将对象列表放入 asp :literal?

转载 作者:太空宇宙 更新时间:2023-11-03 14:42:58 25 4
gpt4 key购买 nike

我有一个类并将对象添加到列表中,然后将列表绑定(bind)到复选框列表。当用户检查列表时,答案进入新列表并放入 session ,然后重定向到新页面。在新页面上,我想要 asp:Literal 中的结果。但我不确定该怎么做。

类(class):

public class Frukter

{
public string Navn { get; set; }
public string Farge { get; set; }
public string BildeSrc { get; set; }


public Frukter(string navn, string farge, string bildeSrc)
{
Navn = navn;
Farge = farge;
BildeSrc = bildeSrc;
}

}

第一页:

public partial class _Default : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
List<Frukter> frukt = new List<Frukter>();
frukt.Add(new Frukter("Appelsin", "Oransj", "~/Appelsin.jpg"));
frukt.Add(new Frukter("Banan", "Gul", "~/Banan.jpg" ));
frukt.Add(new Frukter("Eple", "Rød", "~/Eple.jpg" ));



if (!this.IsPostBack)
{


chklst.DataSource = frukt;
chklst.DataTextField = "Navn";

chklst.DataBind();
}

protected void Resultat_Click(object sender, EventArgs e)

{
List<object> ChkListe = new List<object>();


foreach (ListItem item in chklst.Items)
{
if(item.Selected)

// If the item is selected, add the value to the list.
ChkListe.Add(item);
}

Session["selectedChkList"] = ChkListe;
Response.Redirect("Default2.aspx", false);
}
}

第二页,我从 session 中取出列表,但不确定如何将其放入 asp:literal。

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)

{
if (!IsPostBack)
{
List<object> ResultatList = new List<object>();
if (Session["selectedChkList"] != null)
{
ResultatList = (List<object>)Session["selectedStrList"];

ResultatLliteral.Text = String.Format("<p>{0} {1}</p> <img src ={3} />", Frukter.Navn, Frukter.farge, Frukter.BildeSrc);
}
}
}
}

最佳答案

对您的代码和一些不同方法的一些批评,不确定您的作业是什么,但我会提供可能对您的类(class)有益的反馈。

public class Fruit
{
public Fruit(string name, string color, string image)
{
Name = name;
Color = color;
Image = image;
}

public string Name { get; }
public string Color { get; }
public string Image { get; }
}

您定义了一个始终在创建时设置值的构造函数,因此除非您打算在事后修改该对象,否则您可以将您的属性设置为只读。

我个人会使用数据库或其他方式来保存我的数据,但对于您的示例,您应该能够执行以下操作:

var fruits = new List<Fruit>() 
{
new Fruit("Apple", "Red", "..."),
new Fruit("Grapefuit", "Yellow", "...")
};

// Grab the selected checkbox in the checkbox list item (You'll have to see if a collection is returned or not)
var selectedFruit = chkLFruit.Items.Cast<ListItem>().Where(item => item.Selected);

// Take selected item and pass full object into session.
var filter = fruits.Where(fruit => selectedFruit.Select(t => t.Text).FirstOrDefault(x => String.Compare(x, fruit.Name, true) == 0);

// Create Session
HttpContext.Session["FruitSelection"] = filter;

在您尝试使用之前,在您的其他页面上只需执行以下操作:

var selectedFruits = (List<Fruit>)HttpContext.Session["FruitSelection"];

关于c# - 如何将对象列表放入 asp :literal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55929402/

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