У меня есть UserControl внутри ретранслятора. Источник данных репитера - это SQL Server.
Пользовательский контроль .cs - MoviePanel.ascx.cs:
public int myMovieID { get; set; }
public string myMovieName { get; set; }
public string myMovieDescription { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
MovieIDLbl.Text = myMovieID.ToString();
MovieNameLbl.Text = myMovieName;
DescriptionLbl.Text = myMovieDescription;
}
Страница ASPX:
<asp:Repeater ID="Repeater1" DataSourceID="ListOfMoviesDS" runat="server">
<ItemTemplate>
<uc1:MovieDetailPanel runat="server" myMovieID='<%# Eval("MovieID") %>'
myMovieName='<%# Eval("movieName") %>'
myMovieDescription='<%# Eval("movieDescription") %>'
id="MovieDetailPanel1" />
<asp:Label ID="Label1" runat="server"
Text='<%# Eval("MovieID") %>'></asp:Label>
<asp:Label ID="Label2" runat="server"
Text='<%# Eval("movieName") %>'></asp:Label>
<asp:Label ID="Label3" runat="server"
Text='<%# Eval("movieDescription") %>'></asp:Label>
</ItemTemplate>
</asp:Repeater>
Здесь происходит что-то очень странное. Значения не передаются в UserControl. Однако, если я помещаю ярлыки под пользовательским контролем и устанавливаю текст с помощью Eval()
, он работает. Вы можете подумать, что проблема с usercontrol может быть проблемой. Но если я вручную что-то наберу, скажем, вместо <%# Eval("movieName") %>
он будет передан в пользовательский элемент управления и отобразится.
У меня нет CLUE! Если проблема связана с Eval() Ярлыки также не должны получать текст. Или если проблема связана с UserControl, мой текст руководства не должен проходить. Я не знаю, почему значения Eval() не достигают UserControl.