2013-02-15 207 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

相關問題