У меня есть простой пользовательский элемент управления, который переключается между видимостью нескольких изображений в зависимости от UserId.Когда страница загружается в первый раз, ID пользователя назначается правильно (я отлаживаю).Однако на странице есть две другие кнопки для фильтрации по типу пользователей, которые выполняют свои функции через Ajax (не инструментарий, а обычный javascript ajax)
Когда нажата одна из этих кнопок,пользовательский элемент управления не может получить идентификатор пользователя, он всегда отображается как ноль.О, кстати, usercontrol находится в DataRepeater, так что это происходит для каждого пользователя ... все время ... или это идея.У меня есть несколько других подобных страниц (ни на одной из них нет ajax), и у пользовательского элемента управления нет никаких проблем.
Мой управляющий код пользователя:
открытый частичный класс ucAuthorityBadges: BaseUserControl {
protected void Page_Load(object sender, EventArgs e)
{
if (UserId > 0 && UOBJ.GroupId > 0)
{
DataSet DS = new DataSet();
DS = huDataAccessLayer.dbTools.GetUserAuthority(UserId);
if (!utils.isDataSetEmpty(DS))
{
imgTeamBadge.Visible = Convert.ToBoolean(DS.Tables[0].Rows[0]["isTeam"]);
imgDoctorBadge.Visible = Convert.ToBoolean(DS.Tables[0].Rows[0]["isDoctor"]);
imgAdminBadge.Visible = Convert.ToBoolean(DS.Tables[0].Rows[0]["isAdmin"]);
imgVolunteerBadge.Visible = Convert.ToBoolean(DS.Tables[0].Rows[0]["isVolunteer"]);
imgBloggerBadge.Visible = Convert.ToBoolean(DS.Tables[0].Rows[0]["isBlogger"]);
}
}
}
}
А вот повторитель данных выглядит примерно так:
<div class="profileContainer">
<asp:HyperLink Enabled='<%# Eval("isActive") %>' ID="profileName_link" runat="server" Text='<%# Eval("Username") %>' NavigateUrl='<%# "/Profile/" + Eval("Username") %>'></asp:HyperLink>
<img id="friend_image" runat="server" src="/css/images/icons/friend.gif" alt="friend" title="Friend" visible='<%# Convert.ToBoolean(Eval("isFriend")) %>' style="vertical-align:middle" />
<ucAB:AuthorityBadges ID="ucAuthBadge" runat="server" UserId='<%# Convert.ToInt32(Eval("UserId")) %>' />
<%# Eval("UserId") %>
<asp:Label ID="status_label1" Text=" · Friend Request Pending" style="font-size:small;" Visible='<%# Convert.ToBoolean(Eval("isFriendReqPending")) %>' runat="server" Font-Bold="false"></asp:Label>
</div>
Здесь, сразу после строки userControl, я печатаю идентификатор пользователя только для того, чтобы убедиться, что он действителен (<<# # Eval ("UserId")%> и идентификаторы пользователя тоже действительны. Я не понимаю, почему пользовательский элемент управления не может выбратьэто на постбэк ajax?
Любой намек на это будет действительно здорово,
Большое спасибо!