2011-09-13 14 views
0

となり、グリッドの並べ替えは最初の列でうまく機能します。他のすべての列は昇順でのみソートすることができ、 "sortdir"は決して "DESC"に切り替わりません。 (Ajaxキャッシングも無効になります)このサンプルのMVC3 Webgridのソートの問題は、2番目の列で

誰もが解決策を知っているのですか、同じ問題がありましたか?何が間違っている?

コントローラー:

[OutputCache(Location = OutputCacheLocation.None)] 
public ActionResult Index_Result_Org(string sort, string sortdir) 
{ 
    this.setRep(); 
    this.rep.LoadOV(); 
    return View("Index_OV", rep.GetOV(sort != null ? sort : "Kennung", sortdir != null ? sortdir == "ASC" : true)); 
} 

ビュー:

@model List<Models.OV_View> 
@{ 
    Layout = null; 
    var grid_BA = Html.Grid<OV_View>(Model, ajaxUpdateContainerId: "BAS_OV", canPage: false, defaultSort: "Kennung");   
} 
<div id="BAS_OV"> 
    @grid_BA.GetHtml(
    htmlAttributes: new { @id = "webgrid_BA" }, 
    alternatingRowStyle: "alt", 
    tableStyle: "BAS", 
    columns: grid_BA.Columns(
         grid_BA.Column("Kennung", header: "Verbandskennung", format: @<text>@Html.Label(@item.Data.Kennung)</text>, canSort: true), 
         grid_BA.Column("Name", header: "Verbandsname", format: @<text>@item.Data.Name</text>, canSort: true), 
         grid_BA.Column("Anzahl", header: "Anzahl", format: @<text>@item.Data.Anzahl</text>, canSort: true, style: "counter_column"), 
         grid_BA.Column("Select", header: "X", canSort: false, format: @<text><input id="Select" name="Select" type="checkbox" onclick="Select(this)" value="@item.Select" @(item.Select == true ? "Checked" : null) /></text>, style: "checkbox_column"), 
         grid_BA.Column("ID", "", format: @<text>@item.Data.ID</text>, canSort: false, style: "invisible_column") 
          ) 
        ) 
</div> 

答えて

1

はそれを手に入れました。

defaulSort:列は降順で並べ替えることができます。

ので、私は、コントローラに次の行を追加しました:

this.ViewBag.Sort = sort; 

そしてanddedを、ビューに次の行を変更:

var grid_BA = Html.Grid<ErgoBAS_OV_View>(Model, ajaxUpdateContainerId: "BAS_OV", canPage: false, defaultSort: "Kennung");  

に:

string temp = this.ViewBag.Sort != null ? this.ViewBag.Sort : "Kennung"; 
var grid_BA = Html.Grid<ErgoBAS_OV_View>(Model, ajaxUpdateContainerId: "BAS_OV", canPage: false, defaultSort: temp); 

これは汚れたソリューションは、ビューのモデルに追加される必要があります、私は今何を行うことがきれいであると思う。