2013-02-15 209 views
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的完整信息。我得到一个错误。这种情况是关于购物车 我需要帮助 请帮忙。

回答

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> 

一般应该足以封装整个页面的形式标记,这样所有事件将被传递到您的代码隐藏。

+0

我总共有5个div标签,都在一个表单标签。 我不知道为什么会出现这个错误。正如你所说的,它已经被封装在runat =“server”的表单标签中 – 2013-02-15 08:05:56

+0

为什么你不只是将购物车实现为Webcontrol? 将该事物渲染为字符串,然后将该字符串包含在另一个元素中似乎过于复杂且容易出错。 – 2013-02-15 11:27:06

相关问题