Ai đó có thể giải thích cách dễ nhất để cung cấp dữ liệu cho một người sử dụng kiểm soát bên trong một bộ lặp?Cách cung cấp 'dữ liệu' cho Điều khiển người dùng bên trong bộ lặp?
tôi có như sau:
Default.aspx
<!-- this.GetData() returns IEnumerable<Object> -->
<asp:Repeater runat="server" datasource='<%#this.GetData()%>'>
<ItemTemplate>
<my:CustomControl runat="server" datasource='<%#Container.DataItem %>
</ItemTemplate>
</asp:Repeater>
codebehind
protected void Page_Load(object sender, EventArgs e)
{
this.DataBind();
}
CustomControl.ascx
<!-- Object has property Title -->
<h1><%#this.DataSource.Title%></h1>
codebehind:
[System.ComponentModel.DefaultBindingProperty("DataSource")]
public partial class CustomControl : System.Web.UI.UserControl
{
public Item DataSource { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
var x = this.DataSource; //null here
}
protected void Page_PreRender(object sender, EventArgs e)
{
var x = this.DataSource; //still null
}
}
là 'this.GetData()' được gọi trước hoặc sau 'Page_Load' nơi dữ liệu của bạn đang diễn ra. Bạn chỉ có thể di chuyển '.GetData()' sang trước khi dữ liệu của bạn trong 'Page_Load'? – Jay
this.GetData() được gọi với biểu thức dữ liệu '#'. Vì vậy, nó được gọi là ON databinding ... – Ropstah