我在转发器中有这个div,我在后面的代码中设置了类,onmouseover和onmouseout属性:
<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被解雇两次,并且我有一些代码我只想执行ONCE:
if (!Page.IsPostBack)
{ ..code to execute once }
此代码最初被触发,在呈现页面之后,它再次被调用,并由于js而再次执行...
任何人都可以推荐一种解决方法吗?
提前致谢。
更新:仅在Firefox中发生。在chrome上,它工作得很好......
“解决方案”:停用YSlow ....只是“可怕”。
答案 0 :(得分:0)
您可以使用OnItemCreated
事件来执行此操作吗?
假设div是每个项目的一部分,你可以陷入事件&amp;在FindControl
上执行Item
以获取div
的句柄。检查ItemIndex
&amp;在代码隐藏中根据需要分配类。
这有帮助吗?
答案 1 :(得分:0)
我将Response.Redirect
替换为Server.Transfer
,因为它被建议为新的做事方式。从那时起,页面加载两次,Chrome中的后退按钮返回上一页并立即返回当前页面。
我将Server.Transfer
替换为Response.Redirect
,一切都恢复正常。我希望这有助于某人。