Привет, вот сценарий.
У меня есть и страница .aspx с такой панелью обновления
<asp:UpdatePanel id="uPanelMain" runat="server">
<ContentTemplate>
<uc:Calendar id="ucCalendar" runat="server" Visible="true" />
<uc:Scoring id="ucScoring" runat="server" Visible="false" />
</ContentTemplate>
Элемент управления ucCalendar загружается первым и содержит сетку, подобную этой
<asp:DataGrid CssClass="grid" ID="gridGames" runat="server" AutoGenerateColumns="False" HeaderStyle-CssClass="gridHeader" ItemStyle-CssClass="gridScoringRow"
GridLines="None" ItemStyle-BackColor="#EEEEEE" AlternatingItemStyle-BackColor="#F5F5F5"
OnEditCommand="doScoreGame" OnDeleteCommand="doEditGame" OnCancelCommand="printLineup" OnItemDataBound="gridDataBound">
<Columns>
<asp:TemplateColumn >
<ItemTemplate>
<asp:CheckBox ID="chkDelete" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="idGame" Visible="false" />
<asp:BoundColumn DataField="isClose" Visible="false" />
<asp:TemplateColumn HeaderText="Status">
<ItemTemplate>
<asp:Image ID="imgStatus" runat="server" ImageUrl="~/img/icoX.png" alt="icoStatus" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="linkScore" runat="server" CommandName="Edit" Text="Score" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Поэтому, когда я нажимаю "linkButton", кодовая часть userControl вызывает публичный метод в .aspx следующим образом:
от пользователя Control
protected void doScoreGame(object sender, DataGridCommandEventArgs e)
{
((GM)this.Page).showScoring(null, null);
}
со страницы .aspx
public void showScoring(object sender, EventArgs e)
{
removeLastLoadedControl();
ucScoring.Visible = true;
}
Итак, возникает проблема:
Когда я изменяю атрибут visible элемента управления ucScoring, происходит две обратной передачи.
Первый постбэк в порядке, он обрабатывается панелью обновления.
Второй постбэк - это полный постбэк, и я действительно не понимаю, почему это происходит.
Я действительно потерян здесь, пожалуйста, помогите!
Спасибо
Мат