Я создал пользовательский элемент управления ASP.NET "Box.ascx" со следующим кодом.
<div id="divContent" runat="server" visible='<%# AllowedToView(this.Privacy) %>'>
Content
</div>
В коде «Box.ascx.cs» есть следующий код.
public string Privacy = string.Empty;
public bool AllowedToView(string privacy)
{
return true;
}
Когда я использую этот элемент управления в репитере, срабатывает функция AllowedToView (). Если я использую этот элемент управления без повторителя, функция AllowedToView () не вызывается. Я хочу знать, почему происходит эта странная ситуация и как заставить элемент управления вызывать функцию AllowedToView () при использовании без повторителя.
Подробности приведены ниже.
Я использую этот элемент управления в повторителе в "Default.aspx".
<asp:Repeater ID="rpRecords" runat="server">
<ItemTemplate>
<uc1:Box ID="myBox" runat="server" RecordID = '<%# Eval("RecordID") %>' />
</ItemTemplate>
</asp:Repeater>
Повторитель привязан к базе данных в «Default.aspx.cs» со следующим кодом:
DataTable dt = FillTable();
rpRecords.DataSource = dt;
rpRecords.DataBind();
Я использую элемент управления «Box.ascx» в «ShowBox.aspx» со следующим кодом.
<body>
<uc1:Box ID="myBox" runat="server" />
</body>
Я передаю значения пользовательскому элементу управления из следующего кода:
protected void Page_Load(object sender, EventArgs e)
{
myBox.RecordID = "1";
}