2010-04-03 196 views
1

我有这个div一个中继器,在这里我设置类,的onmouseover内部和onmouseout属性从后面的代码:页面加载两次因js代码

<div id="Div1" runat="server" class="<%# getClassProduct(Container.ItemIndex) %>" onmouseover="<%# getClassProductOver(Container.ItemIndex) %>" onmouseout="<%# getClassProductOut(Container.ItemIndex) %>"> 

代码隐藏:

public String getClassProduct(Object index) 
{ 
    int indexItem = Int32.Parse(index.ToString()); 
    if (indexItem == 3) 
     return "produs_box produs_box_wrap overitem lastbox"; 
    else 
     return "produs_box produs_box_wrap overitem"; 
} 

public String getClassProductOver(Object index) 
{ 
    int indexItem = Int32.Parse(index.ToString()); 
    if (indexItem == 3) 
     return "this.className='produs_box produs_box_wrap overitem_ lastbox'"; 
    else 
     return "this.className='produs_box produs_box_wrap overitem_'"; 
} 

public String getClassProductOut(Object index) 
{ 
    int indexItem = Int32.Parse(index.ToString()); 
    if (indexItem == 3) 
     return "this.className='produs_box produs_box_wrap overitem lastbox'"; 
    else 
     return "this.className='produs_box produs_box_wrap overitem'"; 
} 

好,问题是,我的Page_Load被激发两次,在那里,我有一些代码,我想只执行一次:

if (!Page.IsPostBack) 
    { ..code to execute once } 

此代码最初被触发,并在页面呈现后,再次被调用,并由于该js而再次执行...

任何人都可以推荐解决方法吗?

在此先感谢。

更新:只发生在Firefox中。在铬,它工作正常...

“解决方案”:停用YSlow ....只是“可怕的”。

+0

您应该发布整个页面,以便我们可以看到上下文,这可能是重要信息存在的位置。 – 2010-04-03 17:52:58

+0

那么,洞页(aspx)有350行鳕鱼。如果我只从上面评论这个div,所有的工作都很棒。 – 2010-04-03 17:54:48

+0

我建议在调试器中观察它,并检查堆栈跟踪以查看谁正在调用代码两次。 – Ray 2010-04-03 18:00:16

回答

0

你可以使用OnItemCreated事件来做到这一点吗?

假设,在div是每个项目的一部分,你可以捕获到事件&做FindControlItem获得句柄div。检查ItemIndex &根据需要在代码隐藏中分配类。

这有帮助吗?

+0

嗨,在OnItemCreated事件完成,但问题仍然存在。 – 2010-04-03 18:27:33

+1

你有任何可能导致刷新的Firefox插件吗?当页面加载第二次时,“Page.IsPostBack”的值是多少? – shahkalpesh 2010-04-03 18:39:35

+0

嗨。 Page.IsPostBack也是第二次错误。我停用萤火虫,似乎问题仍然存在... – 2010-04-03 18:54:09

0

我用Server.Transfer替换了Response.Redirect,因为它被建议为新的做事方式。此后,页面加载两次,Chrome中的“返回”按钮返回到上一页并立即返回到当前页面。 我用Response.Redirect取代了Server.Transfer,一切恢复正常。我希望这可以帮助别人。