2012-07-04 2 views
0

мой код слишком долго, так что извините :)Dev Express Mvc Редактирование GridViewSetting ошибка?

@model IEnumerable<Osos11.Models.Customers> 
@Html.DevExpress().GridView(
settings => 
{ 
    settings.Name = "gvEditing"; 
    settings.KeyFieldName = "sno"; 
    settings.CallbackRouteValues = new { Controller = "Customer", Action = "EditingPartial" }; 
    settings.Width = System.Web.UI.WebControls.Unit.Percentage(100); 

    settings.Columns.Add(column => 
    { 
     column.Caption = "#"; 
     column.SetDataItemTemplateContent(c => 
     { 
      ViewContext.Writer.Write(
       Html.ActionLink("Edit", "EditingEdit", new { sno = DataBinder.Eval(c.DataItem, "sno") }) + "&nbsp;" + 
       Html.ActionLink("Delete", "EditingDelete", new { sno = DataBinder.Eval(c.DataItem, "sno") }, 
        new { onclick = "return confirm('Do you really want to delete this record?')" }) 
      ); 
     }); 
     column.SetHeaderTemplateContent(c => 
     { 
      ViewContext.Writer.Write(
       Html.ActionLink("New", "EditingEdit", new { sno = -1 }).ToHtmlString() 
      ); 
     }); 
     column.Settings.AllowDragDrop = DefaultBoolean.False; 
     column.Settings.AllowSort = DefaultBoolean.False; 
     column.Width = 70; 
    }); 
    settings.Columns.Add("Name"); 
    //settings.Columns.Add(column => 
    //{ 
    // column.FieldName = "CategoryID"; 
    // column.Caption = "Category"; 

    // column.ColumnType = MVCxGridViewColumnType.ComboBox; 
    // var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties; 
    // comboBoxProperties.DataSource = NorthwindDataProvider.GetCategories(); 
    // comboBoxProperties.TextField = "CategoryName"; 
    // comboBoxProperties.ValueField = "CategoryID"; 
    // comboBoxProperties.ValueType = typeof(int); 
    //}); 
    settings.Columns.Add("CustomerNumber"); 
    //settings.Columns.Add("UnitPrice").PropertiesEdit.DisplayFormatString = "c"; 
    //settings.Columns.Add("UnitsInStock"); 
    //settings.Columns.Add("Discontinued", MVCxGridViewColumnType.CheckBox); 

    settings.ClientLayout = (s, e) => 
    { 
     if (e.LayoutMode == ClientLayoutMode.Loading) 
     { 
      if (Session["GridState"] != null) 
       e.LayoutData = (string)Session["GridState"]; 
     } 
     else 
      Session["GridState"] = e.LayoutData; 
    }; 
    settings.PreRender = (s, e) => 
    { 
     if (ViewData["VisibleID"] == null) return; 

     ASPxGridView grid = (ASPxGridView)s; 
     grid.MakeRowVisible(ViewData["VisibleID"]); 
    }; 
}).Bind(Model).GetHtml() 

Я получил эту ошибку

Compiler Error Message: CS1660: Cannot convert lambda expression to type 'DevExpress.Web.Mvc.GridViewSettings' because it is not a delegate type 
+0

Почему вы не связываетесь с ребятами DX по поводу вашей проблемы? – Mikhail

+0

потому что они не могут сказать ожидаемый ответ. Тэй говорит то же самое. Но здесь мои проблемы решаются всегда :) –

+0

Действительно? Не могли бы вы поделиться своим опытом? Обратите внимание, что вы можете отправить ответ на свой вопрос самостоятельно, если нашли решение. – Mikhail

ответ

1

Кажется, что эта проблема вызвана тем, что любое выражение в определении GridView не является действительным. В результате, все определение GridView (выражение лямбда) не может быть распознано View Engine.

+0

Я знаю это, но я не могу найти ошибку –

+0

Вы можете уменьшить свой код шаг за шагом, чтобы найти проблемную область. – Mikhail

+0

Я думаю, что проблема связана с Html.ActionLink. После того, как я удалил его, gridview работал. –

Смежные вопросы