2013-05-04 2 views
0

MS Visual Studio 2010을 사용하여 ASP.NET의 목록 상자에 표시하는 장바구니에서 항목의 서식을 지정하려고합니다.이 프로그램은 각 항목의 요소를 연결된 문자열로 표시하지만 작동합니다 내가 원하는 것보다 덜 우아하다.ASP.net 내에 HTML을 포함

cartItem 클래스 내에서 내 화면 기능은 다음과 같습니다 문자열 반환 Product.ProductName &으로

공공 기능 표시는() ";"& Product.ProductID & "("+ Quantity.ToString() & " 당신의 문자열의 형식을 삽입 HTML "나는에를 들었다

최종 기능" "& FormatCurrency (Product.UnitPrice) &"각)에서. 테이블, TRS 및 TDS와 CSS를 추가합니다. " W3Schools에 "Embed HTML"을 올려 보니 관련성이없는 것으로 보였습니다. 나는 수업 교과서에서 이런 것을 발견 할 수 없었다. 같은 태그와 같은 문을 삽입하려고하면 Visual Studio로 변환됩니다. 다음과 같이 내가 응답 쓰기에 문을 넣어 시도 :

Response.Write("<html>") 
    Response.Write("<table>") 
    Response.Write("<tr>") 
    Response.Write("<td>") 
    Response.Write("<Product.ProductID>") 
    Response.Write("</td>") 
    Response.Write("<td>") 
    Response.Write("<Product.ProductName>") 
    Response.Write("</td>") 
    Response.Write("</tr>") 
    Response.Write("</table>") 

그러나, 나는이 말을 각 행에 오류가있어 "응답이 선언되지 않습니다 그것은 액세스 할 수 있습니다 인해 보호 수준에.". 그것이 작동하더라도, 나는 Response.Write가 목록 상자 안에 인쇄되는 어떤 것을 포맷하는 것이 적절할 것이라고 확신하지는 않는다.

장바구니 항목을 표시하기 위해 다른 컨트롤 (자세히보기, 폼보기)을 사용할 수는 있지만 데이터베이스에 바인딩하는 방법을 배웠고 이러한 항목은 장바구니에 있습니다 (cartitemlist 클래스의 개체 , 카트 항목의 배열입니다), 데이터베이스가 아닙니다.

도움을 주시면 감사하겠습니다. 나는 이것을 배우기 위해 복사 할 해결책을 찾고있는 것이 아닙니다. 이 일을 올바르게 수행하는 방법을 알고 싶습니다. 미리 감사드립니다. W

답변

1

사용자 정의 컨트롤을 만들고 RenderContents()를 구현할 수 있습니다.

public class ProductGrid : System.Web.UI.WebControls.WebControl 
{ 
    public List<Product> DataSource {get; set;} 

    protected override void RenderContents(HtmlTextWriter output) 
    { 
     //here you can iterate through datasource and write the output 
     output.Write("<html><table>"); 

     foreach(row in this.DataSource) 
     { 
      output.Write(String.Format("<td>{0}</td><td>{1}</td></tr>",row.ProductID, row.ProductName)); 
     } 

     output.Write("</table></html>"); 
    } 
} 

이제이 usercontrol을 aspx 페이지에 배치하십시오. 예를 들어 div 또는 td에있을 수 있습니다. 별도의 어셈블리에서이 사용자 컨트롤을 만드는

ProductGrid1.DataSource = ??? ; //from where you get List<Product> 
를 Page_Load

의 데이터 소스를

<div> 
    <ProductGrid Width="100%" ID="ProductGrid1" runat="server" /> 
</div> 

를 "등록 총회"를 사용하여 aspxpage에 그를 참조하여 설정되어있는 경우 기억