我环顾四周,试图找到一个解决方案,但却找不到一个我可以适应我的问题。
基本上我有一个转发器从SQL数据库中拉出图像路径,它有3个值定义高度,宽度和价格,在图像下显示3个标签。但是我不希望标签显示值是否为0,所以我写了这个foreach来对它进行排序:
foreach (RepeaterItem Rep1 in Repeater1.Items)
{
//assigns a temporary variable the value of the control we find.
Label nullPris = (Label)Rep1.FindControl("PrisLabel");
Label nullHeight = (Label)Rep1.FindControl("HeightLabel");
Label nullWidth = (Label)Rep1.FindControl("WidthLabel");
//Checks if the lable has the text we're looking for.
if (nullPris.Text == "0,00 Kr.-" || nullPris.Text == "0.00 Kr.-")
{
//If it has, stop rendering the label.
nullPris.Visible = false;
}
if (nullHeight.Text == "Højde: 0,00 cm" || nullHeight.Text == "Højde: 0.00 cm")
{
//If it has, stop rendering the label.
nullHeight.Visible = false;
}
//Checks if the lable has the text we're looking for.
if (nullWidth.Text == " Bredde: 0,00 cm" || nullWidth.Text == "Bredde: 0.00 cm")
{
//If it has, toggle the visibility..
nullWidth.Visible = false;
}
}
代码本身按预期工作,但我遇到了两个问题:
如果我在任何Page_Events
中调用代码它不起作用,代码会运行,但找不到转发器,所以完全跳过其余部分,如果我把它放在一边无关紧要在Page_Load
或Page_Unload
中,两者似乎都在转发器完成其工作之前执行。
其次,我通过标签本身通过OnLoad
调用代码解决了这个问题,但是最后加载的项目不会受到影响,无论数据库中的项目数量如何,都会发生这种情况。 / p>
提前致谢!
答案 0 :(得分:1)
我找到了解决问题的方法,不需要我等待页面加载。
我发现其他人在转发器创建的项目上使用For For循环时遇到了类似的问题,因此我每次使用OnItemDataBound方法将新项目绑定到转发器时取出循环并执行代码,我修改后的代码如下所示:
protected void Repeater1_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
{
//assigns a temporary variable the value of the control we find.
Label nullPris = (Label)e.Item.FindControl("PrisLabel");
Label nullHeight = (Label)e.Item.FindControl("HeightLabel");
Label nullWidth = (Label)e.Item.FindControl("WidthLabel");
//Checks if the lable has the text we're looking for.
if (nullPris.Text == "0,00 Kr.-" || nullPris.Text == "0.00 Kr.-")
{
//If it has, stop rendering the label.
nullPris.Visible = false;
}
if (nullHeight.Text == "Højde: 0,00 cm" || nullHeight.Text == "Højde: 0.00 cm")
{
//If it has, stop rendering the label.
nullHeight.Visible = false;
}
//Checks if the lable has the text we're looking for.
if (nullWidth.Text == " Bredde: 0,00 cm" || nullWidth.Text == "Bredde: 0.00 cm")
{
//If it has, toggle the visibility..
nullWidth.Visible = false;
}
}
}
答案 1 :(得分:0)
如果可能的话尝试查看ajax调用/ javascript基本上你想在文档准备就绪时触发一个函数......对吗?