J'applique une pagination personnalisée et un tri dans la grille de Kendo. Pour une de mes colonnes, je reçois une zone de texte numérique. Lorsque j'insère la valeur dans la zone de texte numérique, il est entier, mais comme la mise au point est retirée de la zone de texte numérique du filtre, elle convertit en décimal. Pour par exemple: Si je suis entré 32, il reste 32, mais comme l'ajout de la valeur de 32,00. Mais je veux que cette valeur reste 32. P>
On peut donc m'aider avec la solution. P>
8 Réponses :
Définissez simplement le format de colonne:
c.Bound(x => x.ColumnName).Format("{0:#}");
Cela n'a pas fonctionné que cela a défini le format pour les données affichées dans la colonne, mais les données sont affichées dans le filtre pour être au format non décimal.
Vous pouvez définir le format sur le filtrable sur la colonne, comme celui-ci: update strong>
Ceci est la version JavaScript. Voici ma définition complète de la grille: p>
Vous pouvez définir comme ci-dessous
J'ai beaucoup essayé, mais je n'ai pas eu d'expression de Lambda dans le champ filtrable "filtrable (x => x.ui (" numericfilter "));". Avons-nous besoin d'ajouter des JS ou quelque chose?
Je pense que non. J'utilise Kendo MVC 2013.2.716.340 Vérifiez également votre web.Config avoir la ligne ci-dessous
J'ai cette définition i Web config. Mais la version que j'utilise est la suivante: 2012.2.913.340. Donc, peut-être que c'est la raison pour laquelle je ne reçois pas l'expression de la Lambda.
Cette solution fonctionne bien mais insère toujours des virgules séparateur lorsque les boîtes de texte numériques perdent la mise au point. Voir la solution ci-dessous par @kamran pour résoudre ce problème.
Merci bien de travailler :). Pour la méthode d'extension, veuillez utiliser "Utilisation de System.Linq.Expressions;" Espace de noms.
Réglez la colonne de filtrage sous
p>
column.filterable = {
ui: numberFilter,
cell: {
template: numberFilter,
}
};
function numberFilter(args) {
var element = args instanceof jQuery ? args : args.element;
element.kendoNumericTextBox({
format: "n0"
});
} sur Kendo numerItextBox, le format est utilisé pour formater le contenu de l'entrée lorsqu'il n'est pas ciblé.
Vous avez utilisé des décimales du format du format lors de sa focalisation.
Par exemple, voici une numéritextbox (ASP.NET) montrant toujours entier: espère que cela aidera quelqu'un. P> p>
Qu'est-ce que Palani Kumar em> a déclaré que les séparateurs encore insérés, il convertit 12345 à 12 345; Donc, je recommande le code modifié ci-après au cas où vous voudriez des chiffres pure sans formatage (aucun séparateur, aucun point décimal, etc.). columns.Bound(x => x.Property).Filterable(x => x.UI("numericFilter"));
<script type="text/javascript">
function numericFilter(control) {
$(control).kendoNumericTextBox({ format: "#", decimals: 0 });
}
</script>
J'avais le même problème et les mêmes colonnes.bound (x => x.property) .Filtrerable (x => x.ui ("numériquefilter")); ne travaillait pas pour moi. Piggy Support de Xavier John's Réponse J'ai utilisé Colonnes.FilterABLABLE.Cell.Template Pour résoudre mon problème, car la documentation de Telerik stipule:
Colonnes.FilterAble.UI String | Fonction P>
L'attribut de données de rôle du widget utilisé dans le menu du filtre ou une fonction JavaScript qui initialise ce widget. P>
Cette fonctionnalité n'est pas prise en charge pour les colonnes qui ont leur option de valeurs. Si filtrable.mode est défini sur 'rangée', colonnes.filterable.cell.template doit être utilisé pour personnaliser l'entrée. P> blockQuote> blockQuote>
http: //docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.filterable.ui p>
Voici mon code P>
@(Html.Kendo().Grid<UnsoldStockBO.USS_STOCK>() .Name("searchGrid") .Columns(columns => { columns.Bound(c => c.CyAbbrev); columns.Bound(c => c.UssCrop).Filterable(filter => filter.Cell(c => c.Template("IntegerFilter"))); columns.Bound(c => c.TtAbbrev); columns.Bound(c => c.PtAbbrev); columns.Bound(c => c.UssInternalGrade); columns.Bound(c => c.SuggestedPrice).Format("{0:c2}").Filterable(filter => filter.Cell(c => c.Template("NumericFilter"))); columns.Bound(c => c.UssCtPricePerKilo).ClientTemplate("#:kendo.toString(UssCtPricePerKilo, 'c', Culture)#").Filterable(filter => filter.Cell(c => c.Template("NumericFilter"))); columns.Bound(c => c.UssNetKilos).Format("{0:n}").Filterable(filter => filter.Cell(c => c.Template("NumericFilter"))); columns.Bound(c => c.UssWriteDownCount).Format("{0:n0}").Filterable(filter => filter.Cell(c => c.Template("IntegerFilter"))); columns.Command(command => { command.Edit().HtmlAttributes(new { @title = "Quick Edit" }); command.Custom("EditStock").HtmlAttributes(new { @title = "Edit" }); command.Destroy().HtmlAttributes(new { @title = "Delete" }); }).HtmlAttributes(new { @nowrap = "nowrap" }); }) .Mobile() .ToolBar(toolbar => toolbar.Custom().Text("Add Stock").Action("Create", "Stock").Name("AddStock")) .Editable(editable => editable.Mode(GridEditMode.InLine).DisplayDeleteConfirmation("This record will be permanently deleted and cannot be recovered. Are you sure?")) .Filterable(ftb => ftb.Mode(GridFilterMode.Row)) .Sortable() .Pageable() .Events(e => e.DataBound("onDataBound").Cancel("onCancel")) .NoRecords("No records found.") .Resizable(resize => resize.Columns(true)) .DataSource(dataSource => dataSource .WebApi() .ServerOperation(true) .PageSize(30) .Events(events => events.Error("error_handler").Sync("sync_handler")) .Model(model => { model.Id(p => p.UssId); model.Field(c => c.CyAbbrev).Editable(false); model.Field(c => c.UssCrop).Editable(false); model.Field(c => c.TtAbbrev).Editable(false); model.Field(c => c.PtAbbrev).Editable(false); model.Field(c => c.UssInternalGrade).Editable(false); model.Field(c => c.SuggestedPrice).Editable(false); }) .Read(read => read.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "webapi", action = "UnsoldStock_Get", userId = ((UnsoldStockBO.PSI_USER)Session["USS_User"]).UUid }))) .Update(update => update.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "webapi", action = "UnsoldStock_Update", userName = ((UnsoldStockBO.PSI_USER)Session["USS_User"]).UUserName })).Type(HttpVerbs.Post)) .Destroy(destroy => destroy.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "webapi", action = "UnsoldStock_Delete", id = "{0}", userName = ((UnsoldStockBO.PSI_USER)Session["USS_User"]).UUserName })).Type(HttpVerbs.Delete)) ) ) <script type="text/javascript"> function IntegerFilter(args) { args.element.kendoNumericTextBox({ format: "#", decimals: 0, spinners: false }); } function NumericFilter(args) { args.element.kendoNumericTextBox({ spinners: false }); } </script>
pour la grille de base ASP.NET:
colonnes.bound (C => C.Expenditure) .format ("{0: #, ###. 00}"). Largeur (75); Code> P>