asp.net 4.5 C#을 사용하고 있습니다. 이 작품 반면에 시도,Asp.net UserControl - 데이터 바인딩하는 방법 목록에서 개체를 바인딩?
<script runat="server">
Product item=new Product();
</script>
<uc:productBox runat="server" item="<%#item%>"/>
: 위의 멤버로 "제품"데이터 바인딩하면서,
[Bindable(true)]
public Product item
{
get{
return _product;
}
set
{
_product = value;
}
}
가 그때 내 컨트롤을 사용 나는 내 다음과 같은 멤버 사용자 정의 컨트롤을 만들었습니다 다음과 같은 방법으로 목록에서 바인드 동적 항목은 실패
foreach (Product item in ProductList()){%>
<uc:productBox runat="server" item="<%#item%>"/>
<%}%>
내가받을 다음과 같은 오류 :
The name 'item' does not exist in the current context
목록의 항목을 바인딩 할 수없는 이유는 무엇이며 어떻게 해결할 수 있습니까?
감사합니다. 나는 당신이 제안한 것을했는데, 이제는 "ProductsArea"라고 불리는 중계기가 있는데, 나는 ProductsArea.DataSource = Products를 사용한다; ProductsArea.DataBind(); 코드 뒤에, 앞에서 나는 를 사용한다. 그러나 Item은 항상 내 컨트롤에서 null입니다. 왜 이런거야. –
Programer
@Programer 'Repeater'컨트롤을 사용하지 마십시오. 'Repeater'의'ItemType'을'Product'의 전체 네임 스페이스 + 유형으로 설정 한 다음 여기에 보이는대로 '<%# Item %>'을 사용하는 것이 어떻습니까? http://stackoverflow.com/a/17328960/1540350 희망이 있습니다. 또는'<% = this.GetDataItem(). ToString() %>'을 시도하십시오. 여기에서 모든 답변을 시도하십시오. https://stackoverflow.com/questions/5011617/asp-net-repeater-bind-liststring. – modiX