RadGrid - 回发后不保留值

时间:2011-08-04 19:47:56

标签: radgrid

RadGrid是从服务器端使用模板字段生成的。 NeedDataSource ()是用于数据绑定的。在每次回发时,RadGrid都会丢失值,因为没有调用NeedDataSource。手动在 Onload ()上执行 Rebind ()也无济于事。

网格结构在 OnLoad ()中定义并执行一次! IsPostback ()

我记得在某处读取当从服务器端动态构建Grid结构时,网格'需要'在每次回发时都是Rebind()。

RadGrid不会在回发时维护这些值吗?这与ViewState有关吗?

3 个答案:

答案 0 :(得分:2)

“NeedDataSource”事件也应该在回发上发生。您可以尝试使用RadAjaxManager设置页面。您的网格是否在第一次加载时加载数据?尝试按照他们在网格上设置的演示页面,作为设置它们的不同方法的最佳示例之一。

http://demos.telerik.com/aspnet-ajax/grid/examples/programming/simplebinding/defaultcs.aspx

答案 1 :(得分:1)

根据radgrid文档,如果以编程方式创建网格,则需要在OnInit方法中创建它: http://www.telerik.com/help/aspnet-ajax/grid-programmatic-creation.html(在Page_Init部分创建RadGrid) 当网格部分添加到标记中时,可以使用onLoad。 希望这会有所帮助。

答案 2 :(得分:0)

创建将数据绑定到Radgrid的函数

private void BindData()
    {
    //Get data from database
        //DBData can be datatable or list
        RadGrid1.DataSource = DBData;
    }

然后调用页面加载事件

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                BindData();
            }
        }
        catch (Exception ex)
        {

        }
    }

然后你可以在NeedDataSource事件中使用相同的功能

    protected void RadGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        BindCommentData();
    }