У меня есть страница, которая содержит сгенерированный контент.
Page.aspx:
<asp:DropDownList ID="cmbUsers" runat="server" AutoPostBack="True"
oninit="cmbUsers_Init">
</asp:DropDownList>
<asp:Panel ID="pnlRights" runat="server">
Page.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
string [] roles = Roles.GetAllRoles();
string sel_user = ... ; // get the user name selected by combo
foreach (string role in roles)
{
CheckBox chk = new CheckBox();
chk.Text = role;
chk.Checked = Roles.IsUserInRole(sel_user, role);
pnlRights.Controls.Add(chk);
}
}
protected void cmbUsers_Init(object sender, EventArgs e)
{
... // fill the combo with user list
if (!IsPostBack)
{
{
cmbUsers.SelectedValue = // the current signed username;
}
}
}
При первой загрузке страница корректна - все флажки установлены так, как и должно быть (проверены роли, в которых находится пользователь).
Проблема возникает, когда вы меняете пользователя в комбо. После изменения вызывается обратный вызов, все флажки снова устанавливаются правильно (видел в отладчике), НО браузер показывает флажки, установленные для предыдущего пользователя. Я не подозреваю ошибку браузера (пробовал в IE, Maxthon, Mozilla), но некоторые настройки я забыл установить. Это что-то с кешированием? Не могли бы вы дать мне подсказку, пожалуйста?