2011-03-30 84 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的成員提供它會做你的。