2011-06-07 8 views
0

Je ne trouve pas d'exemples comment faire la validation côté client avec MVC jQGrid. Pour côté client, je peux voir que je dois attribuer la propriété colonne EditClientSideValidatorsASP.NET MVC jQGrid côté client et la validation côté serveur

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

Mais je ne peux pas comprendre comment assigner la validation à cela.

Mais comment faire la validation du serveur, il est également une question

MISE À JOUR

Je pense que je l'ai trouvé validation côté client quelque chose http://www.trirand.net/aspnetmvc/grid/editclientsidevalidation

Répondre

0

Si vous avez pris la licence qui inclut le support, vous pouvez demander à la développeur ... sinon, le lien que vous avez montré a la documentation ... la grille doit demander les validateurs quand il obtient les données, comme ceci:

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()); 
} 
Questions connexes