FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 13664|回复: 13
打印 上一主题 下一主题

要分組和鎖定列很簡單,主要是ExtJS是支持的。只要糾正/...

[复制链接]
楼主
发表于 2014-5-5 11:27:48 | 显示全部楼层
您好!我用您的代码测试了一下,没有效果,请问能否给一个示例。非常感谢!
沙发
发表于 2014-5-5 15:06:39 | 显示全部楼层
使用官网示例:FineUI.Examples/grid/grid.aspx 结合您的代码修改如下,运行无效。


aspx代码:
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid.aspx.cs" Inherits="FineUI.Examples.grid.grid" %>

  2. <!DOCTYPE html>
  3. <html>
  4. <head runat="server">
  5.     <title></title>
  6.     <link href="../css/main.css" rel="stylesheet" type="text/css" />
  7. </head>
  8. <body>
  9.     <form id="form1" runat="server">
  10.     <x:PageManager ID="PageManager1" runat="server" />
  11.     <x:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" Title="表格" Width="400px" runat="server"
  12.         DataKeyNames="Guid">
  13.         <Columns>
  14.             <x:TemplateField  ColumnID="f1" Width="60px">
  15.                 <ItemTemplate>
  16.                     <asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
  17.                 </ItemTemplate>
  18.             </x:TemplateField>
  19.             <x:BoundField ColumnID="f2" Width="100px" DataField="Name" DataFormatString="{0}" HeaderText="姓名" />
  20.             <x:TemplateField Width="60px" HeaderText="性别">
  21.                 <ItemTemplate>
  22.                     <asp:Label ID="Label3" runat="server" Text='<%# GetGender(Eval("Gender")) %>'></asp:Label>
  23.                 </ItemTemplate>
  24.             </x:TemplateField>
  25.             <x:BoundField Width="60px" DataField="EntranceYear" HeaderText="入学年份" />
  26.             <x:CheckBoxField Width="60px" RenderAsStaticField="true" DataField="AtSchool" HeaderText="是否在校" />
  27.             <x:HyperLinkField HeaderText="所学专业" DataToolTipField="Major" DataTextField="Major"
  28.                 DataTextFormatString="{0}" DataNavigateUrlFields="Major" DataNavigateUrlFormatString="http://gsa.ustc.edu.cn/search?q={0}"
  29.                 DataNavigateUrlFieldsEncode="true" Target="_blank" ExpandUnusedSpace="True" />
  30.             <x:ImageField Width="60px" DataImageUrlField="Group" DataImageUrlFormatString="~/images/16/{0}.png"
  31.                 HeaderText="分组">
  32.             </x:ImageField>
  33.             <x:BoundField Width="100px" DataField="LogTime" DataFormatString="{0:yy-MM-dd}" HeaderText="注册日期" />
  34.         </Columns>
  35.     </x:Grid>
  36.     <br />
  37.     <br />
  38.     </form>
  39. </body>
  40. </html>
复制代码



cs代码:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Web;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;
  6. using System.Data;
  7. using System.Text;
  8. using System.IO;

  9. namespace FineUI.Examples.grid
  10. {
  11.     public partial class grid : PageBase
  12.     {
  13.         protected override void Render(System.Web.UI.HtmlTextWriter writer)
  14.         {
  15.             StringWriter sw = new StringWriter();
  16.             base.Render(new System.Web.UI.HtmlTextWriter(sw));
  17.             String html = sw.ToString();

  18.             if (GridHelp.GridReset.Count > 0)
  19.             {
  20.                 foreach (KeyValuePair<string, string> dict in GridHelp.GridReset)
  21.                 {
  22.                     html = html.Replace(dict.Key, dict.Value);
  23.                 }
  24.             }

  25.             writer.Write(html);
  26.         }

  27.         protected void Page_Load(object sender, EventArgs e)
  28.         {
  29.             if (!IsPostBack)
  30.             {
  31.                 GridHelp.GridFieldLock(Grid1, new string[] { "f1", "f2" });
  32.                 //GridHelp.GridFieldGroup(Grid1, "f1", "fx", true);
  33.                 BindGrid();

  34.             }
  35.         }

  36.         #region BindGrid

  37.         private void BindGrid()
  38.         {
  39.             DataTable table = GetDataTable();

  40.             Grid1.DataSource = table;
  41.             Grid1.DataBind();

  42.         }

  43.         

  44.         #endregion



  45.     }



  46.     public static class GridHelp
  47.     {
  48.         /// <summary>
  49.         /// Grid功能重置
  50.         /// </summary>
  51.         public static Dictionary<string, string> GridReset = new Dictionary<string, string>();

  52.         /// <summary>
  53.         /// Grid欄位鎖定(類似Excel列凍結)
  54.         /// </summary>
  55.         /// <param name="g">表格</param>
  56.         /// <param name="ColumnID">唯一標識</param>
  57.         public static void GridFieldLock(FineUI.Grid g, String[] ColumnIDs)
  58.         {
  59.             String GridFieldLockMark = "{1C1A60AC-9E4B-4688-991F-BE95290BD1E9}";
  60.             String GridFieldUnLockMark = "{1D1CE2BE-C0E1-4DFB-A3AA-FF30A8DE73A5}";
  61.             foreach (GridColumn gc in g.Columns)
  62.             {
  63.                 g.FindColumn(gc.ColumnID).HeaderText += GridFieldUnLockMark;
  64.             }
  65.             foreach (String gid in ColumnIDs)
  66.             {
  67.                 g.FindColumn(gid).HeaderText = g.FindColumn(gid).HeaderText.Replace(GridFieldUnLockMark, "");
  68.                 g.FindColumn(gid).HeaderText += GridFieldLockMark;
  69.             }

  70.             GridReset.Add(GridFieldLockMark + """, "",locked:true,lockable:false");
  71.             GridReset.Add(GridFieldUnLockMark + """, "",lockable:false");
  72.         }

  73.         /// <summary>
  74.         /// Grid設置分組
  75.         /// </summary>
  76.         /// <param name="g">表格</param>
  77.         /// <param name="FirstColumnID">第一列ColumnI</param>
  78.         /// <param name="GroupColumnID">需要分組列的ColumnI</param>
  79.         /// <param name="Collapsed">是否不展開</param>
  80.         public static void GridFieldGroup(FineUI.Grid g, String FirstColumnID, String GroupColumnID, Boolean Collapsed)
  81.         {
  82.             string GridMark = "features:[{ftype:'grouping',groupHeaderTpl:'X1',hideGroupedHeader:true,enableGroupingMenu:false,startCollapsed:X2}],";
  83.             GridMark = GridMark.Replace("X1", "{name}").Replace("X2", Collapsed ? "true" : "false");
  84.             GridReset.Add("id:"" + g.ClientID + "",", "id:"" + g.ClientID + ""," + GridMark);

  85.             GridMark = ("Ext.create('Ext.data.ArrayStore',{fields:[{name:"X"}").Replace("X", FirstColumnID);
  86.             GridReset.Add(GridMark, GridMark.Replace("fields:", ("groupField:'X',fields:").Replace("X", GroupColumnID)));
  87.         }
  88.     }
  89. }
复制代码
板凳
发表于 2014-5-5 15:07:38 | 显示全部楼层
~~疯狂~~ 发表于 2014-5-5 15:06
使用官网示例:FineUI.Examples/grid/grid.aspx 结合您的代码修改如下,运行无效。

运行没有报错,但是不会锁定列。
地板
发表于 2014-5-6 09:06:07 | 显示全部楼层
请问您使用的是4的版本还是3的版本?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-12 05:49 , Processed in 0.048381 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表