ASP .NET 中的 DataGrid 与其他回发事件的利益冲突

本文关键字:事件 利益冲突 其他 NET 中的 DataGrid ASP | 更新日期: 2023-09-27 18:36:30

>我有一个绑定到泛型集合的数据网格。在Page_Load事件中,我检查!this.IsPostback并相应地在网格上调用 DataBind。

然后,如果我尝试通过指定唯一名称和排序表达式来实现排序,即使页面是回发,它也希望我调用 DataBind。

这种情况通常如何解决?在Page_Load中调用无条件的 DataBind 似乎不是一个好主意。

ASP .NET 中的 DataGrid 与其他回发事件的利益冲突

在 SortCommand 事件中调用数据绑定代码:

void DataGrid1_SortCommand(Object sender, DataGridSortCommandEventArgs e)
    {
        // Retrieve the data source.
        DataTable dt = YOURDATA;
        // Create a DataView from the DataTable.
        DataView dv = new DataView(dt);
        // The DataView provides an easy way to sort. Simply set the
        // Sort property with the name of the field to sort by.
        dv.Sort = e.SortExpression;
        // Rebind the data source and specify that it should be sorted
        // by the field specified in the SortExpression property.
        DataGrid1.DataSource = dv;
        DataGrid1.DataBind();
    }

如果更改排序,则始终需要重新绑定,因为控件需要重新填充而不是更改。自从我做任何 asp.net 以来已经有一段时间了,但我很确定无论您是否调用 databind ,数据都会绑定到每个回发中,您不必手动执行此操作的唯一原因是因为视图状态。