我有公共变量:
public static List<CompanyModel1> companies1 = new List<CompanyModel1>();
public List<URL> urls = new List<URL>();
我在函数调用期间为此变量添加了更多值
public void DataBind_Results()
{
..companies1.AddRange(listToAdd.OrderByDescending(c => c.compnMastery1));
}
urls.Add(new URL
{
Link = listToAdd.First().compnId1.ToString(),
Title = arrProcess[ar]
});
但我的代码总是运行两次(我看到当我使用debug时),我认为原因是它总是有页面重新加载。 然后我的变量将复制其值,当我显示数据时,我看到它是重复的。如何避免呢?
答案 0 :(得分:2)
我假设您正在使用asp.net或其他东西。在
中包装“添加”功能if(!Page.IsPostBack) {
//Your add code
}
答案 1 :(得分:1)
理想情况下,找出您的网页加载两次然后修复的原因。
然后添加代码以检查列表是否在每个数据绑定开始时填充,然后重新填充。
答案 2 :(得分:0)
您希望变量填充OnLoad,所以请执行以下操作:
声明你的变量:
public static List<CompanyModel1> companies1;
public List<URL> urls;
在页面加载时填充它们。但如果你正在做回发,那就不行了。
protected override void OnLoad(EventArgs e)
{
if(!IsPostBack)
{
companies1 = new List<CompanyModel1>();
urls = new List<URL>();
}
}
答案 3 :(得分:0)
您的代码正在运行两次,这意味着,一次调用该函数时,再次回发页面时。 将您的代码放入
if(!IsPostBack)
{
here.....
}