gpt4 book ai didi

c# - 绑定(bind)到函数后,下拉列表在 postpack 后重置

转载 作者:太空宇宙 更新时间:2023-11-03 15:54:37 24 4
gpt4 key购买 nike

我在 asp.net 项目中遇到下拉列表问题。经过详尽的检查后,我将范围缩小到两种情况。在您回复之前,请自己尝试一下作为证据。 VS2010 或 VS2012 ASP.Net 项目。我向你保证这行不通。

我认为自己是一名经验丰富的 .net 开发人员,像这样的代码通常对我来说确实非常微不足道,但我完全被这个代码难住了。

任何帮助将不胜感激

在我的 default.aspx Page_Load 事件页面中,我只有这段代码,没有其他内容

if (!IsPostBack)
{
cboDept1.DataSource = GetTeamGroups();
cboDept1.DataValueField = "Value";
cboDept1.DataTextField = "Text";
cboDept1.DataBind();
}

使用此版本的 GetTeamGroups 函数代码,下拉列表按预期工作,列表被保留,我可以在每次回发后毫无问题地获取 SelectedItem 等。

private List<ListItem> GetTeamGroups()
{
List<ListItem> oList = new List<ListItem>();

oList.Add(new ListItem("1", "1"));
oList.Add(new ListItem("2", "2"));
oList.Add(new ListItem("3", "3"));
oList.Add(new ListItem("4", "4"));

return oList;
}

如果我想从函数(数据库或网络服务)获取列表,那是不切实际的。但是此版本的 GetTeamGroups 函数会在每次回发时重置下拉列表。我无法获取 SelectedItem。 (PS。使用什么代码来动态填充列表并不重要,问题是一样的。似乎无法动态填充列表以使其起作用)。

private List<ListItem> GetTeamGroups()
{
List<ListItem> oList = new List<ListItem>();

string[] sGroups = ConfigurationManager.AppSettings["Groups"].ToString().Split(';');

int iCount = 0;

foreach (string sGroup in sGroups)
{
oList.Add(new ListItem(sGroup, iCount.ToString()));
}

return oList;
}

我读过很多文章,认为 View 状态可能有所帮助。控件或页面上的 View 状态组合无法解决问题。该列表总是重置。

最佳答案

New ListItem("Text","Value");

第二个函数中的值是重复的,需要在foreach()循环中增加iCount,

关于c# - 绑定(bind)到函数后,下拉列表在 postpack 后重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118568/

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