2015-10-12 7 views
0

У меня есть текстовое поле и кнопка поиска и RadGrid, которые уже были связаны данными с помощью события OnNeedDataSource. Когда я нажимаю кнопку поиска, он будет получать новые данные, а я Rebind() - данные на событии нажатия кнопки поиска.Telerik RadGrid неверные данные при подкачке

Но когда я меняю номер страницы на сетке, источник данных не был источником данных, который я уже перевязал().

+0

Возможно размещать код поможет нам определить вашу проблему ... – Nic

ответ

0

Вот мой пример кода .. Я не вижу проблем при смене страницы. Возможно, вы захотите изменить Rebind на DataBind из-за разных DataSource. Rebind скорее всего, заберет предыдущий DataSource

.aspx

<asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager> 

<asp:TextBox ID="txt" runat="server" Text=""></asp:TextBox> &nbsp; 
<telerik:RadButton ID="btn" runat="server" Text="Search" OnClick="btn_Click"> 
</telerik:RadButton> 

<br /><br /> 
<telerik:RadGrid ID="rg" runat="server" PageSize="5" 
    OnNeedDataSource="rg_NeedDataSource" AllowPaging="true" 
    AutoGenerateColumns="false"> 
    <MasterTableView> 
     <Columns> 
      <telerik:GridBoundColumn DataField="Text" HeaderText="Sample"> 
      </telerik:GridBoundColumn> 
     </Columns> 
    </MasterTableView> 
    <PagerStyle Mode="NumericPages" /> 
</telerik:RadGrid> 

.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    // Variable 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Text"); 

    for (int i = 0; i < 20; i++) 
     dt.Rows.Add("DataSource before search First Item No." + (i + 1)); 

    // Save to Viewstate 
    ViewState["Data"] = dt; 

    // Bind 
    rg.DataSource = dt; 
    rg.DataBind(); 
} 

protected void rg_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
    rg.DataSource = ViewState["Data"] as DataTable; 
} 

protected void btn_Click(object sender, EventArgs e) 
{ 
    // Variable 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Text"); 

    // Loop 
    for (int i = 0; i < 20; i++) 
     dt.Rows.Add("Datasource Search button item no " + (i + 1)); 

    // Viewstate the new Datasource 
    ViewState["Data"] = dt; 

    // Reset Page 
    rg.CurrentPageIndex = 0; 

    // Bind 
    rg.DataSource = dt; 
    rg.DataBind(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^