Я недавно начал использовать ASP.Net и Radrikrid от Telerik, но столкнулся с проблемой:
Мой объект RadGrid находится в объекте UserControl в объекте пользовательского элемента управления в объекте Page (в котором есть диспетчер сценариев).
У меня есть несколько пользовательских элементов управления в указанном пользовательском элементе управления, каждый из которых содержит разметку для объекта RadGrid, как показано ниже:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AreaListRadGrid.ascx.cs" Inherits="WebControls.AreaListRadGrid" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" %>
<telerik:RadAjaxPanel runat="server" ID="radAjaxPanel"
EnableAJAX="true" LoadingPanelID="radAjaxLoadingPanel">
<telerik:RadGrid AllowPaging="true" AutoGenerateColumns="false" DataSourceID="gridData" EnableViewState="true" GridLines="None" ID="radGrid" runat="server">
<PagerStyle Mode="NumericPages" />
<MasterTableView>
<Columns>
<telerik:GridBoundColumn DataField="ColA" HeaderText="A" />
<telerik:GridBoundColumn DataField="ColB" HeaderText="B" />
<telerik:GridBoundColumn DataField="ColC" HeaderText="C" />
<telerik:GridBoundColumn DataField="ColD" HeaderText="D" />
<telerik:GridBoundColumn DataField="ColE" HeaderText="E" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
</telerik:RadAjaxPanel>
<asp:ObjectDataSource ID="gridData" runat="server"
SelectMethod="GetData"
SelectCountMethod="GetDataCount"
OnObjectCreating="dataObjectCreating"
TypeName="AreaListRadGrid">
</asp:ObjectDataSource>
<telerik:RadAjaxLoadingPanel runat="server" ID="radAjaxLoadingPanel">
Loading please wait....
</telerik:RadAjaxLoadingPanel>
Я изменил имена столбцов и пространств имен на что-то не зависящее от проекта, но сетка загружается.
Как и в пользовательском элементе управления, он создается следующим образом:
var view = (AreaListRadGrid)this.TemplateControl.LoadControl(".\\WebControls\\AreaListRadGrid.ascx");
view.DataSource = dataSet;
areaCenterMiddle.Controls.Add(view);
view.RadGrid.Rebind();
переменная dataSet
имеет тип System.Data.DataSet
.
Итак, когда я запускаю этот сайт, появляется Rad Grid. У меня есть сетка с 4 рядами, 3 из которых находятся на странице 1, а последний ряд - на странице 2.
Когда я нажимаю на страницу 2, все происходит, как ожидалось. Изменяется стиль для кнопок страницы, и строки со страницы 1 удаляются, а строка со страницы 2 добавляется в сетку. Большой! Что происходит дальше, я не понимаю:
При повторном нажатии на страницу 1 стили для кнопки страницы 2 не изменяются (поэтому все равно, как при нажатии), а строки 2 и 3 появляются в сетке, но первая строка - это строка, которая была включена страница 2.
![re-visit to page 1](https://i.stack.imgur.com/73NqE.png)
кажется, что страница 2 не очищается при загрузке страницы 1, хотя я не уверен, почему или как это происходит. У кого-нибудь есть идеи, что я делаю неправильно?
Буду очень признателен за вашу помощь.
Приветствия
Rob