本帖最后由 棕榈 于 2020-2-10 18:07 编辑
FineUI 评分控件在Grid中
之前的FineUI评分控件https://fineui.com/bbs/forum.php?mod=viewthread&tid=22354&fromuid=5871,是不可以直接显示在Grid中的,它是对NumberBox的包装,在常规Grid编辑模式下是不允许每一行都创建不同的NumberBox,所以我们需要单独创建了一个Grid包装方法。
使用方法与创建渲染列是一样的,代码:
- function renderRating(value) {
- return F.ext.renderRating({
- value: value
- });
- }
复制代码
将 renderRating 放入渲染函数,代码:
- F.RenderField().HeaderText("评分").DataField("Rating").FieldType(FieldType.Float).RendererFunction("renderRating")
复制代码
这样就可以完成所有的操作了,与普通渲染列没有区别。
如果想加入更多参数,代码:
- function renderRating(value) {
- return F.ext.renderRating({
- value: value,
- icon: 'trophy',
- count: 11,
- size: 20,
- color: '#16a085',
- allowHalf: true,
- readonly: false
- });
- }
复制代码
下面是示例的代码:
- @page
- @model FineUICore.EmptyProject.RazorPages.Pages.GridModel
- @{
- ViewBag.Title = "Grid";
- var F = @Html.F();
- }
- @section body {
- <h2>Grid中的评分控件</h2>
- @(F.Grid().IsFluid(true).CssClass("blockpanel").Title("表格").ShowHeader(true).ShowBorder(true).ID("Grid1").DataIDField("Id").DataTextField("Name").AllowCellEditing(true)
- .Columns(
- F.RowNumberField(),
- F.RenderField().HeaderText("姓名").DataField("Name").Width(100),
- F.RenderField().HeaderText("性别").DataField("Gender").FieldType(FieldType.Int).RendererFunction("renderGender").Width(60),
- F.RenderField().HeaderText("入学年份").DataField("EntranceYear").FieldType(FieldType.Int).Width(100),
- F.RenderCheckField().HeaderText("是否在校").DataField("AtSchool").RenderAsStaticField(true).Width(80),
- F.RenderField().HeaderText("只读评分").DataField("Rating").FieldType(FieldType.Float).RendererFunction("renderRating").Width(135),
- F.RenderField().HeaderText("五星评分").DataField("Rating2").FieldType(FieldType.Float).RendererFunction("renderRating2").Width(135),
- F.RenderField().HeaderText("奖杯评分").DataField("Rating3").FieldType(FieldType.Float).RendererFunction("renderRating3").Width(135),
- F.RenderField().HeaderText("注册日期").DataField("EntranceDate").FieldType(FieldType.Date).Renderer(Renderer.Date).RendererArgument("yyyy-MM-dd").ExpandUnusedSpace(true)
- )
- .DataSource(DataSourceUtil.GetSimpleDataTable())
- )
- <br>
- <br>
- }
- @section script {
- <script src="~/res/js/fineui-rating.js"></script>
- <script>
- function renderGender(value) {
- return value == 1 ? '男' : '女';
- }
- function renderRating(value) {
- return F.ext.renderRating({
- value: value,
- readonly: true
- });
- }
- function renderRating2(value) {
- return F.ext.renderRating({
- value: value
- });
- }
- function renderRating3(value) {
- return F.ext.renderRating({
- value: value,
- icon: 'trophy'
- });
- }
- </script>
- }
复制代码
fineui-rating.js 文件请到知识星球下载。
|