Questo è l'HTML. Ho un ripetitore che contiene un controllo utente.La proprietà del controllo utente perde valore dopo un postback
<asp:Repeater ID="rpNewHire" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<user:CKListByDeprtment ID = "ucCheckList"
DepartmentID= '<%# Eval("DepID")%>'
BlockTitle = '<%# Eval("DepName")%>'
runat = "server"></user:CKListByDeprtment>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
DepartmentID è una proprietà che ho definito all'interno del controllo utente.
int departmentID;
public int DepartmentID
{
get { return departmentID; }
set { departmentID = value; }
}
Ed è così che sto cercando di accedervi
protected void Page_Load(object sender, EventArgs e)
{
int test = departmentID;
}
Quando la pagina viene caricata per la prima volta, IDdipartimento ha un valore. Tuttavia, quando la pagina Post torna, quel valore è sempre .
Ha senso. Stavo usando il departmentID variabile in tutta la classe. Cosa uso invece? La proprietà, ad esempio DepartmentID? – Richard77
@ Richard77: Sì, questo è il motivo per cui preferisci le proprietà sui campi. È possibile modificare l'implementazione in un secondo momento. Rendi i campi sempre privati. –
Ha senso. Non c'è da stupirsi, conoscendo il ciclo di vita della pagina ASP.NET è una delle principali domande durante il colloquio di lavoro. Grazie mille. – Richard77