3

ショッピング カート サイトに取り組んでいます。div セクションに含まれる製品の完全な情報を表示したいと考えています。別のページで。私は情報を含むdivを持っているかもしれません。目標は、ユーザーが製品の画像をクリックしたときに新しいページで情報を取得することです。

   Error: 
           Control 'MainContent_ImageButton1' of type 'ImageButton' must be placed inside a form tag with runat=server.
    HTML:
      <div id="physics" runat="server">
        <h3>High School Physics</h3>
      <%--  <a href="ShowLarge.aspx"> <img src="images/Book.jpg" />  </a>--%>
        <asp:ImageButton ID="ImageButton1" 
                src="images/Book.jpg" runat="server" onclick="ImageButton1_Click"  />
        <p> Book Description Goes Here
        <br />
         <asp:Label ID="Label1" runat="server" Text="Label">PKR 770/-</asp:Label>
         <br />
         <asp:TextBox ID="TextBox1" Text="1" runat="server"></asp:TextBox>

         <asp:Button ID="Button1" runat="server" Text="Add" />
        </p>

    </div>

    Code :
     protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            StringWriter sw = new StringWriter();
        HtmlTextWriter w = new HtmlTextWriter(sw);

        physics.RenderControl(w);
        Session["mySessionVar"]  = sw.GetStringBuilder().ToString();

            Response.Redirect("ShowLarge.aspx", true);

        }

    HTML: where i want to show this info 

    <div id="ShowInLargeView" runat="server">
    </div>

    Code: 

     protected void Page_Load(object sender, EventArgs e)
        {
            ShowInLargeView.InnerHtml = (String)Session["mySessionVar"];
        }

別のページで Div の完全な情報を表示したい。エラーが発生します。このシナリオはショッピング カートに関するものです。助けが必要です。助けてください。

4

1 に答える 1

0

発生しているエラーは、イベント ハンドラーを追加しようとしているという事実に関連しています。

   protected void ImageButton1_Click(object sender, ImageClickEventArgs e)

ページの要素にイベント ハンドラーを追加するには、runat="server" 属性を使用して「フォーム」にカプセル化する必要があります。これにより、ImageButton のクリック イベントがコード ビハインドで終了します。

あなたのaspxは次のようになります:

<form runat="server">
      <div id="physics" runat="server">
        <h3>High School Physics</h3>
      <%--  <a href="ShowLarge.aspx"> <img src="images/Book.jpg" />  </a>--%>
        <asp:ImageButton ID="ImageButton1" 
                src="images/Book.jpg" runat="server" onclick="ImageButton1_Click"  />
        <p> Book Description Goes Here
        <br />
         <asp:Label ID="Label1" runat="server" Text="Label">PKR 770/-</asp:Label>
         <br />
         <asp:TextBox ID="TextBox1" Text="1" runat="server"></asp:TextBox>

         <asp:Button ID="Button1" runat="server" Text="Add" />
        </p>

    </div>
</form>

一般に、ページ全体をフォーム タグにカプセル化するだけで十分です。この方法では、すべてのイベントがコード ビハインドに渡されます。

于 2013-02-15T08:01:57.437 に答える