如何设置排序参数的默认值上一个ObjectDataSource

问题描述:

我有AllowSorting="True"一个GridView,和我有SortParameterName="orderBy"SelectMethod="GetScheduledSurveys"如何设置排序参数的默认值上一个ObjectDataSource

<SelectParameters> 
<asp:Parameter Name="orderBy" Type="String" DefaultValue="SurveyDueDate" /> 
</SelectParameters> 

一个ObjectDataSource当我第一次去的页面,将默认值了“ orderBy“SelectParameter不传递给”GetScheduledSurveys“SelectMethod。它只在我点击GridView中的标题时才被传入。我如何在首次访问时使用默认值?

在将数据传递给数据源之前,您没有对这些数据进行排序(例如,在您的存储过程或查询中对其进行排序)吗?如果没有,我会建议在Page_Load上做Page.IsPostBack==false。祝你好运!

+0

有没有和刚发布后我添加的问题if(String.IsNullOrEmpty(orderBy))orderBy =“SurveyDueDate”;进入我的“GetScheduledSurveys”SelectMethod。只是我很惊讶DefaultValue没有被传入,我想知道我是否应该在aspx中做些什么。 – Colin

+0

@HanletEscaño我也是,现在正面临这个问题。我在我的SelectMethod中声明了一个默认的排序字段,但SelectMethod是一个我可以在许多不同的数据源中重复使用的方法。有时我的数据源对排序有不同的要求,具体取决于我的页面逻辑。没有办法强制数据源传递排序参数吗?我宁愿不必在'Page_Load'中使用'Control.DataBind()'手动执行。 –