I think you can sort by the following codes. // Only UserName MyDateGrid.Source = MyDataView; MyDataGrid.Sort = "UserName"; MyDataGrid.DataBind(); // First UserName than date: MyDateGrid.Source = MyDataView; MyDataGrid.Sort = "UserName, theDate"; MyDataGrid.DataBind(); // First date than UserName: MyDateGrid.Source = MyDataView; MyDataGrid.Sort = "theDate, UserName"; MyDataGrid.DataBind(); You also need a property that knows what the last sorthing method was. private string lastSortCommand = ""; if(lastSortCommand == "UserName" && currentSortCommand == "theDate") { MyDateGrid.Source = MyDataView; MyDataGrid.Sort = "theDate, UserName"; MyDataGrid.DataBind(); } else if(lastSortCommand == "theDate" && currentSortCommand == "UserName") { MyDateGrid.Source = MyDataView; MyDataGrid.Sort = "UserName, theDate"; MyDataGrid.DataBind(); } else { MyDateGrid.Source = MyDataView; MyDataGrid.Sort = currentSortCommand; MyDataGrid.DataBind(); } lastSortCommand = currentSortCommand; Haven't tryed it out, but I'll think i works.