• EXT.NET 使用总结(1)


    前言

    从系统改版到现在,将近半年的时间,原本陌生的Ext.NET的UI框架,也慢慢的熟悉了。总的来说,这个UI框架还是很优秀的,但是也没有100%完美的产品(老系统使用easy ui其实也挺好的)。趁着这段时间不忙,来总结下(主要是一些奇怪的问题和一些控件的用法),也欢迎大家的补充及指正。

    为什么使用Ext.NET

    当初决定改版用EXT.NET,主要是因为兼容浏览器,以及是开发效率高。当然了,有些浏览器的兼容性并不是十分完美,例如ie7。更多优点请参阅@雪雁--http://www.cnblogs.com/codelove/archive/2011/07/22/2114317.html

    开门见山

    http://examples.ext.net/ ext.net官网,提供一些简单的demo,这是主要资料的的来源,不过基本呢上能应付开发了。

    NumberField 

    数字框,初始化时的值必须为数字,如果有异常,初始化的值不值数值类型。当点击ext:Button 的Click事件时,无法监听到Button 的Click事件。很郁闷吧。

    动态添加带控件的数据集的GridPanel

    html代码

     1     <ext:GridPanel ID="GridPanelGrade" AutoScroll="true" trackmouseover="true" AutoDestroy="true" Title="修改"
     2         Layout="VBoxLayout" runat="server" Width="960" AutoDoLayout="true" ColumnLines="true"
     3         Border="false" striperows="true" Cls="page">
     4         <CustomConfig>
     5             <ext:ConfigItem Name="AutoHeight" Value="true" Mode="Value">
     6             </ext:ConfigItem>
     7             <ext:ConfigItem Name="ForceFit" Value="true" Mode="Value">
     8             </ext:ConfigItem>
     9             <ext:ConfigItem Name="autoScroll" Value="true" Mode="Value">
    10             </ext:ConfigItem>
    11             <ext:ConfigItem Name="autoWidth" Value="false" Mode="Value">
    12             </ext:ConfigItem>
    13         </CustomConfig>
    14         <Store>
    15             <ext:Store ID="StoreGrade" runat="server">
    16                 <Model>
    17                     <ext:Model ID="StoreGrade_Mode" runat="server">
    18                     </ext:Model>
    19                 </Model>
    20             </ext:Store>
    21         </Store>
    22         <ColumnModel ID="ColumnModel1" runat="server">
    23             <Columns>
    24             </Columns>
    25         </ColumnModel>
    26     </ext:GridPanel>

    后台代码:

            void Innit_DATA()
            {
                //数据集
                List<List<string>> results = new List<List<string>>();
                        for (int i = 0; i < list_Idx.Count; i++)
                    {
                        List<string> ss = new List<string>();
                        string ssr = Addstep(list_Idx[i].level);
                        ss.Add(ssr + list_Idx[i].name);
                        results.Add(ss);
                    }
                List<ColumnBase> extColumnBase = new List<ColumnBase>();
                Model _ExtModel = new Model();
    
                #region MyRegion
    
                //构建列头
                extColumnBase.Add(new Column
                {
                    ID = "TARGETNAME",
                    Text = "指标名称",
                    DataIndex = "TARGETNAME",
                    Sortable = false,
                    MenuDisabled = true,
                    Width = 194,
                    Flex = 1
                });
    
                _ExtModel.Fields.Add(new ModelField("TARGETNAME"));
                if (dtsource.Rows.Count > 0)
                {
                    for (int i = 0; i < dtsource.Rows.Count; i++)
                    {
                        string ids = "A" + tableName + i;
                        //extColumnBase.Add(new Column
                        //{
                        //    ID = ids,
                        //    Text = GetReptorNmae(dtsource.Rows[i][1].ToString()),
                        //    DataIndex = ids,
                        //    Sortable = false,
                        //    MenuDisabled = true,
                        //    Flex = 1
                        //});
                        ComponentColumn columm = null;
                        columm = new ComponentColumn();
                        columm.ID = ids;
                        columm.DataIndex = ids;
                        columm.Text = GetReptorNmae(dtsource.Rows[i][1].ToString());
                        columm.Flex = 1;
                        columm.Editor = true;
                        TextField textField = new TextField();
                        columm.Component.Add(textField);
                        extColumnBase.Add(columm);
    
                        _ExtModel.Fields.Add(new ModelField(ids));
                    }
                }
                //清除旧数据与记录集
                this.StoreGrade.Reader.Clear();
                this.GridPanelGrade.SelectionModel.Clear();
                this.GridPanelGrade.ColumnModel.Columns.Clear();
                this.StoreGrade.Model.Clear();
    
    
                this.StoreGrade.Model.Add(_ExtModel);
                this.GridPanelGrade.ColumnModel.Columns.AddRange(extColumnBase);
                this.StoreGrade.DataSource = results;
                this.StoreGrade.DataBind();
                this.GridPanelGrade.Render();
    }    

    效果图:

  • 相关阅读:
    return和yield的区别
    基本装饰器
    javascript实例:两种方式实现tab栏选项卡
    javascript实例:路由的跳转
    javascript实例:点亮灯泡
    标签页QTabWidget
    主窗口QMainWindow和启动画面
    各种对话框
    列表视图QlistView
    拆分窗口QSplitter
  • 原文地址:https://www.cnblogs.com/WangJinYang/p/3498876.html
Copyright © 2020-2023  润新知