开发者

page loads twice due to js code

开发者 https://www.devze.com 2022-12-25 19:22 出处:网络
I have this div inside a repeater, where i set the class, onmouseover and onmouseout properties from code behind:

I have this div inside a repeater, where i set the class, onmouseover and onmouseout properties from code behind:

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

codebehind:

 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'";
}

Well, the problem is that, my Page_Load is fired twice, and there i have some code which i want to execute only ONCE:

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

This code is fired initially, and after the page is rendered, it is called again, and executed again due to that js...

Anyone can recommend a workaround?

Thanks in advance.

UPDATE: happens only in Firefox. On chrome, it works fine...

"Solution": deactivated YSlow....just "horrible".


Can you use OnItemCreated event to do that?

Assuming, the div is part of each item, you could trap into the event & do a FindControl on the Item to get the handle to div. Check for ItemIndex & assign the class as you need to in code-behind.

Does that help at all?


I replaced the Response.Redirect with Server.Transfer because it was suggested to be the new way of doing things. Since then, the pages load twice and the Back-button in Chrome returns to the previous page and immediately back to the current page. I replaced the Server.Transfer with Response.Redirect, and all was back to normal. I hope this helps someone.

0

精彩评论

暂无评论...
验证码 换一张
取 消