在Yii 1.1中,此代码适用于默认排序:
$dataProvider = new CActiveDataProvider('article',array(
'sort'=>array(
'defaultOrder'=>'id DESC',
),
));
Run Code Online (Sandbox Code Playgroud)
如何在Yii2中设置默认排序?
尝试下面的代码,但没有结果:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Run Code Online (Sandbox Code Playgroud) 我需要通过一个字符串值的列对DataTable或DataGridView进行排序,但在排序ASCENDING时在BOTTOM中使用null/empty值.
DataTable没有填充SQL语句,因此没有订单.
如果我做
DataGridView1.Sort(New RowComparer(System.ComponentModel.ListSortDirection.Ascending))
Run Code Online (Sandbox Code Playgroud)
然后它抛出一个异常,说DataGridView是DataBound,这是正确的,但对我没有帮助,我想保持它的数据绑定.
它是.NET 2.0,这意味着没有LINQ可用!
告诉DataGridView停止排序的正确方法是什么?
我有一个"屏幕",我以编程方式告诉网格按第4列排序并按升序排序.当我切换到另一个区域时,我希望相同的网格进入"默认"/无排序.我正在删除所有列并添加新列.排序仍在第4列.
我没有看到使用Sort()方法执行此操作的方法.有任何想法吗?
我有一个从数据库加载数据的网格视图。数据首次显示在网格视图中,按日期时间排序。在该 gridview 的一列上,我想允许排序,例如在 main_post 列上。我已经尝试过这个,但是当我单击列标题时,gridview 仍然没有排序。
这是我的 gridview 前端代码:
<asp:DataGrid ID="Datagrid1" runat="server"
AllowPaging="True"
AllowSorting="True"
OnSorting="ComponentGridView_Sorting">
<Columns>
<asp:BoundColumn DataField="main_post" HeaderText="Header Post ID"
SortExpression="ComponentGridView_Sorting" />
</Columns>
</asp:DataGrid>
Run Code Online (Sandbox Code Playgroud)
我的后端代码:
protected void loadData()
{
DataTable dtTemp;
dtTemp = objDBInterface.getResults(strSQL);
Datagrid1.DataSource = dtTemp;
Datagrid1.DataBind();
ViewState["dtbl"] = dtTemp;
}
protected void ComponentGridView_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = ViewState["dtbl"] as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + " " + ConvertSortDirection(e.SortDirection);
Datagrid1.DataSource = dataView;
Datagrid1.DataBind();
}
} …Run Code Online (Sandbox Code Playgroud) 在网格加载数据后,如果我们尝试对任何列进行排序,则默认方向为升序.我们可以为网格列定义一个默认排序,以便在我加载网格后,如果我单击该列,它应该首先按降序排序.我不想在加载时在该方向上对该列进行排序.这应该在网格加载值后发生.我正在使用远程排序.因此,每当加载网格时我都会清除所有分拣机,这样它就不会记住以前的排序.我尝试在服务器端动态添加分拣机,但这会导致网格在加载时按照该属性和方向进行排序.我不想要.我尝试使用sortInfo,它不会工作.
需要立即,如果有人能回答这个问题,我将非常感激.非常感谢.
我陷入了一些异常的问题.当我在gridview中进行排序时,它会触发该网格的RowCommand事件而不是排序事件.下面是我的网格视图的HTML代码.
<asp:GridView ID="grdDefects" runat="server" AutoGenerateColumns="False" OnPageIndexChanging="grdDefects_PageIndexChanging"
OnSorting="grdDefects_Sorting" OnRowCommand="grdDefects_RowCommand" AllowSorting="true">
<PagerSettings Mode="NumericFirstLast" FirstPageText="First" LastPageText="Last"
NextPageText="Next" PreviousPageText="Prev" />
<Columns>
<%--<asp:TemplateField HeaderText="Id" SortExpression="ReasonID" Visible="false">
<ItemTemplate>
<asp:Label ID="lblReasonID" runat="server" Text='<%# Bind("ReasonID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
<asp:BoundField DataField="DefectId" HeaderText="Id" />
<asp:BoundField DataField="DefectName" HeaderText="Defect" sortExpression="DefectName" />
<asp:BoundField DataField="Department" HeaderText="Department Name" sortExpression="Department" />
<%-- <asp:ButtonField ControlStyle-CssClass="btns" ButtonType="Button" CommandName="Update"
Text="Edit" >
<ControlStyle CssClass="btns"></ControlStyle>
</asp:ButtonField>--%>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="editBtn" runat="server" Text="EDIT" CommandArgument='<%# Eval("DefectId") %>' CssClass="btns"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
//这是处理这些事件的代码.
protected void grdDefects_Sorting(object sender, GridViewSortEventArgs e)
{
try
{
if …Run Code Online (Sandbox Code Playgroud) 在几个建议,我开始分配DataSource给我DataGridView而不是使用DataGridView.Rows.Add(...).这很方便,因为我的数据源已经是一个不会改变的大列表(很多).但是,当我使用DataSource赋值时,无法对列进行排序.
class MyGridView : DataGridView
{
private List<Person> m_personList;
private class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string first, string last)
{
FirstName = first;
LastName = last;
}
}
public MyGridView()
{
/* ...initialise stuff... */
m_personList.Add(new Person("Kate", "Smith"));
m_personList.Add(new Person("Bill", "Davids"));
m_personList.Add(new Person("Ann", "Roth"));
this.DataSource = m_personList;
}
}
Run Code Online (Sandbox Code Playgroud)
我也试图取代List<Person>通过BindingList<Person>和通过BindingSource,但没有,这似乎无关紧要.我还尝试添加自定义排序器:
this.SortCompare += MyGridView_SortCompare; …Run Code Online (Sandbox Code Playgroud) 我已经在我的 gridview 中实现了 tablesorter() 并将它放在某些列无法排序的地方。但是,我无法在排序时显示升序和降序图标,也无法获得不显示在无法排序的列上的默认图标。我有以下 css
.tablesorter .tablesorter-header.sorter-false {
background-image: url();
}
.tablesorter th.headerSortUp {
background-image: url(../images/small_asc.gif);
background-position: right center;
background-repeat:no-repeat;
}
.tablesorter th.headerSortDown {
background-image: url(../images/small_desc.gif);
background-position: right center;
background-repeat:no-repeat;
}
Run Code Online (Sandbox Code Playgroud) 我需要一些关于在ouchdb中进行全文搜索的方向。是默认情况下它已在2.0中启用,还是必须重新构建启用它的ouchdb?
场景:这是一个文档管理系统,文档显示在网格中。我需要能够对结果进行排序。从map减少到弹性索引后,现在发生了几处更改,现在我尝试使用芒果查询。问题是排序不能给出预期的结果。
{
"selector": {
"directoryName": {
"$eq": "mail\\test\\inbox"
}},
"sort": [{"subject": "asc"}]
}
Run Code Online (Sandbox Code Playgroud)
尝试按“主题”或其他文本字段进行排序,将结果与“索引逻辑”(例如,返回的排序主题:“此电子邮件...”,“您好...”,“此电子邮件”)混合。 ”,绝对不是我需要的东西。不记得分析器,令牌等是否与“怪异”搜索结果有关。例如,使用日期字段desc sort可以更好地工作,但是当显示从2017年到desc的文档(包含2016年和2015年的文档)时,我得到2014年文档的“入侵者”结果。
我为一些可能的文档排序字段创建了json类型的索引。创建文本类型索引不起作用。我不知道全文搜索可以解决我的“排序”问题,但是对于所有有关cloudant查询语言和全文搜索的参考,我认为此功能已包含在2.0中。