1
<%{
     WebGrid studentGrid = new WebGrid(rowsPerPage: StudentController.PageSize);
     studentGrid.Bind(Model.Students, autoSortAndPage: false, rowCount: Model.RowCount);
     studentGrid.PageIndex = Model.CurrentPage;
}%>

<%=studentGrid.GetHtml(columns: new WebGridColumn[]{
    studentGrid.Column("StudentId", "Id"),
    studentGrid.Column("Name", "Name"),
 })%>

残念ながら、MVC3プロジェクトでaspxビューを使用する必要があります。

グリッドにバインドされているリストアイテムの条件に基づいて、「選択」または「削除」というテキストを表示する列が必要です。

sysntaxはそれをどのように行うのですか

次のようなレンダリングHTMLを取得する必要があります

<span class="1" id=item.id>Select<span>

表示されるHTMLは選択するだけです

4

1 に答える 1

2

formatC#でHTMLを手作りするだけで、間違いなくそれを行うことができます。

<%

    var list = new[]
                    {
                        new { StudentId = 1, Name = "Name1", Cond = true },
                        new { StudentId = 2, Name = "Name3", Cond = false },
                        new { StudentId = 2, Name = "Name3", Cond = true },
                    };
    WebGrid studentGrid = new WebGrid();
    studentGrid.Bind(list, autoSortAndPage: false, rowCount: 3); 

%>
<%= studentGrid.GetHtml(columns: 
    new WebGridColumn[]
        {
            studentGrid.Column("StudentId", "Id"),
            studentGrid.Column("Name", "Name"),
            studentGrid.Column(header: "Action",  
                format: item =>
                {
                    string span = "<span class=\"1\" id=\"{0}\">{1}<span>";
                    string action = item.Cond ? "Select" : "Remove";
                    return Html.Raw(string.Format(span, item.StudentId, action));
                })
        })
%>

ラムダ内でaspxテンプレートsystax(例<% %>)を使用することは一般的にサポートされていますが(このTelerikデモを参照)、WebGridTelrikよりも動作が異なるため動作しません。

構築された方法は、引数WebGrid内のかみそりのテンプレートのみをサポートしているようです...format

于 2012-05-29T16:43:59.577 に答える