2017-12-30 16 views
1

を転送しません。しかし、それは動作していません。エラーが発生した場合はお知らせください。値が、私は同じマスターページのテキストボックスコントロールに(マスターページにあります)前ページのTextBoxコントロールにテキストを転送しようとしていた中で、次のコードを、持っている

protected void Page_Load(object sender, EventArgs e) 
    { 


     if (PreviousPage != null) 
     { 
      TextBox placeholder = 
       (TextBox)PreviousPage.Master.FindControl("TextBox1"); 
      if (placeholder != null) 
      { 
       TextBox searchBox = (TextBox)Master.FindControl("TextBox1"); 
       string search = placeholder.Text.ToString(); 
       searchBox.Text = search; 
      } 
     } 
    } 

これは、マスターページの.aspxのです:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="AlexBookShop.Site1" %> 

<!DOCTYPE html> 

<html> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
    <style type="text/css"> 
     .auto-style1 { 
      margin-bottom: 0px; 
     } 
    </style> 
</head> 
<body> 


    <form id="form1" runat="server"> 


     <div> 

      <asp:DropDownList ID="DropDownList1" runat="server"> 
       <asp:ListItem Value="1">Children</asp:ListItem> 
       <asp:ListItem Value="1">Finance</asp:ListItem> 
       <asp:ListItem Value="3">Non-Fiction</asp:ListItem> 
       <asp:ListItem Value="4">Technical</asp:ListItem> 
      </asp:DropDownList> 

      <asp:TextBox ID="TextBox1" runat="server" CssClass="auto-style1"></asp:TextBox> 
      <asp:Button ID="Button1" runat="server" Text="Search" OnClick="Button1_Click" /> 
      <asp:Button ID="Button2" runat="server" Text="Log Out" OnClick="Button2_Click" /> 

      <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
      </asp:ContentPlaceHolder> 
     </div> 

    </form> 

</body> 
</html> 
+0

PreviousPageプレースホルダを見つけることができますか? HTMLを追加するために質問を編集できますか? –

+0

@SurjitSD:aspxを追加しました。はい、前のプレースホルダは、前のマスタページのテキストボックスコントロール 'TextBox1'を参照しています。 – czolbe

+0

私が正しく理解していれば、次のページにリダイレクトされ、同じマスターページを持つPreviousPageの値を参照しようとしています。この場合、それはできません。次のページにリダイレクトされると、前のページの値は参照できません。 –

答えて

0

あなたがcross page postingを行う必要がありMasterPAgeを介して他のページへ1ページからのデータを転送します。

  1. あなたは、第二の1を指すように、最初のページにbutton制御のPostBackUrlプロパティを割り当てる必要があります。以下のような

    <asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Secondpage.aspx"/>

  2. は、2ページ目のPreviousPageディレクティブを設定します。

    <%@ PreviousPageType VirtualPath="~/firstpage.aspx" %>

  3. 2ページ目は、ポストバックを受信するたびに続いて、最初のページから必要なデータを取得する:

    protected void Page_Load(object sender, EventArgs e) { if (PreviousPage != null) { TextBox placeholder = (TextBox)PreviousPage.Master.FindControl("TextBox1"); if (placeholder != null) { TextBox searchBox = (TextBox)Master.FindControl("TextBox1"); string search = placeholder.Text.ToString(); searchBox.Text = search; } } }

+0

#2は何をしていますか? – czolbe

+0

PreviousPageプロパティを介してアクセスすると、前のページに対して強い入力を得る方法を提供します。このhttps://msdn.microsoft.com/en-us/library/ms228169(v=vs.100).aspxを参照してください。 –

関連する問題