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 回答