Проверка ASP.NET MVC jQGrid на стороне клиента и на стороне сервера - PullRequest
0 голосов
/ 07 июня 2011

Я не могу найти никаких примеров, как выполнить проверку на стороне клиента с помощью MVC jQGrid. Для клиентской части я вижу, что мне нужно назначить свойство столбца EditClientSideValidators

public List<JQGridEditClientSideValidator> EditClientSideValidators { get; set; }

Но я не могу понять, как присвоить этому подтверждение.

Но как сделать проверку сервера - это тоже вопрос

UPDATE

Я думаю, что нашел что-то на стороне клиента http://www.trirand.net/aspnetmvc/grid/editclientsidevalidation

1 Ответ

0 голосов
/ 07 июня 2011

Если вы получили лицензию, включающую поддержку, вы можете обратиться к разработчику ... в противном случае ссылка, на которую вы указали, содержит документацию ... сетка должна запрашивать валидаторы при получении данных, например: *

public void SetUpGrid_EditClientSideValidation(JQGrid grid)
{
    // Setting the DataUrl to an action (method) in the controller is required.
    // This action will return the data needed by the grid.
    // EditUrl will point to the editing action
    grid.DataUrl = Url.Action("EditClientSideValidation_DataRequested");
    grid.EditUrl = Url.Action("EditClientSideValidation_EditRow");

    var integerColumn = grid.Columns.Find(c => c.DataField == "Integer");
    integerColumn.EditClientSideValidators.Add(new RequiredValidator());
    integerColumn.EditClientSideValidators.Add(new MinValueValidator { MinValue = 10 });
    integerColumn.EditClientSideValidators.Add(new MaxValueValidator { MaxValue = 100 });

    var numberColumn = grid.Columns.Find(c => c.DataField == "Number");
    numberColumn.EditClientSideValidators.Add(new RequiredValidator());
    numberColumn.EditClientSideValidators.Add(new MinValueValidator { MinValue = 0.1 });
    numberColumn.EditClientSideValidators.Add(new MaxValueValidator { MaxValue = 100.1 });

    var emailColumn = grid.Columns.Find(c => c.DataField == "Email");
    emailColumn.EditClientSideValidators.Add(new RequiredValidator());
    emailColumn.EditClientSideValidators.Add(new EmailValidator());

    var linkColumn = grid.Columns.Find(c => c.DataField == "Link");
    linkColumn.EditClientSideValidators.Add(new RequiredValidator());
    linkColumn.EditClientSideValidators.Add(new UrlValidator());

    var customColumn = grid.Columns.Find(c => c.DataField == "Custom");
    customColumn.EditClientSideValidators.Add(new Trirand.Web.Mvc.CustomValidator { ValidationFunction = "validateCustomField" });
    }

// This method is called when the grid requests data. You can choose any method to call
// by setting the JQGrid.DataUrl property
public JsonResult EditClientSideValidation_DataRequested()
{
    // Get both the grid Model
    // The data model in our case is an autogenerated linq2sql database based on Northwind.
    var gridModel = new EditValidationModel();
    SetUpGrid_EditClientSideValidation(gridModel.ValidatedGrid);

    // return the result of the DataBind method, passing the datasource as a parameter
    // jqGrid for ASP.NET MVC automatically takes care of paging, sorting, filtering/searching, etc
    List employees = GetClientValidatedEmployeeData();
    return gridModel.ValidatedGrid.DataBind(employees.AsQueryable());
}
...