2011-03-30 127 views
0

我在框架集中有一个ASP.NET页面。我分成2个框架,1.LEFTNAVI2.MAINASP.NET框架目标到新框架

在第一帧(LEFTNAVI)中,我在下面的树形菜单中为搜索引擎使用了一个文本框和一个按钮。如果我点击搜索按钮或菜单,它会在第二帧(主)(即target=MAIN中显示结果。现在问题是,应用程序会话结束,然后我点击搜索按钮。它将显示登录页面以启动会话,登录后,它将在MAIN帧中显示LEFTNAVI帧文本。也就是说,文本框,搜索按钮和树形菜单显示在主框架中。

以下是我在left.aspx中使用的代码。

<script type="text/javascript" language="javascript"> 
    function pageSubmit() 
    { 
     var myForm = document.getElementById('form1'); 
     myForm.target = 'main'; 
    } 
    function KeyDownHandler(btn) 
    { 
     if (event.keyCode == 13) 
     { 
      event.returnValue=false; 
      event.cancel = true; 
      btn.click(); 
     } 
    } 
</script> 

<body> 
    <form id="form1" method="post" runat="server"> 
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     <div id="searchFunc" runat="server"> 
      <asp:TextBox 
       ID="txtSearch" 
       CssClass="txtbox" 
       onKeyDown= "KeyDownHandler(searchButt)" 
       runat="server"></asp:TextBox> 
      <asp:Button 
       ID="searchButt" 
       runat="server" 
       CssClass="smallbutton" 
       Text="Search" 
       onclick="searchButt_Click" 
       OnClientClick="pageSubmit()" /> 
     </div> 
     <br /> 
     <br /> 
     <asp:TreeView 
      CssClass="treeview" 
      ID="tree" 
      runat="server" 
      LineImagesFolder="~/TreeLineImages" 
      ShowLines="True" ExpandDepth="1" > 
      <Nodes> 
       <asp:TreeNode Text="sample tree menu" Value="sam" SelectAction="Expand"> 
      </Nodes> 
     </asp:TreeView> 
    </form> 
</body> 

回答

0

您可以使用重定向url。在这种情况下,您的登录页面应该在查询字符串中有一个参数,以显示重定向到登录页面的页面url,并确保登录页面在登录成功后重定向到该页面。

在这种情况下,登录页面应该在成功登录后检查重定向url并自动重定向到它。在你的情况下,它会重定向到结果页面(而不是搜索页面)。

示例场景:

private void DoLogin() 
{ 
    //write some code for user validation 


    if(loggedin) //login was successful 
    { 
     //redirect to page that redirected to login because of session end 
     var redirectUrl = Request.QueryString["redirectUrl"]; 
     Response.Redirect(redirectUrl); 
    } 
} 

记住,如果你正在使用asp.net的成员提供它会做你的。