zoukankan      html  css  js  c++  java
  • 转:一步步Ext.Net(一),配置及简单布局

    一.    预备知识

    1.     简介

    Ext.Net由起初的Coolite发展而来,Ext.Net是一个开源的ASP.NET(WebForm+MVC)组件库,对跨浏览器的Sencha Extjs javascript库进行了封装,其绝大多数组件及功能与Extjs提供的功能一致。

    以上是官方解释,其实说白了,Ext.Net就是对extjs的asp.net封装,理论上可以不用再写js代码(可惜…)。

    官方网站:www.ext.net

    相信用过ext.net或extjs的朋友对下图很亲切了

     

    1.     配置开发环境

    先从环境配置说起,本文及后续IDE皆以VS2010环境示例。

    下载Ext.Net,http://www.ext.net/download/

    官方提供两个版本:社区版和专业版,这两个版本除了授权协议不一样外,对开发人员来说,没有任何区别。

     


     

    顺便说一个问题,官方的要求的.NET Framework版本为3.5,其实需要装3.5SP1或直接4.0版本,因为Newtonsoft.Json.dll会对.NET Framework 3.5SP1中新增的一些地方有调用,所以建议开发环境为4.0版本。

    配置VS工具箱

    首先在VS中新建Web应用程序空项目,新建一个aspx页面,在工具箱中右键,新建选项卡,取名称为Ext.Net。在新建的选项卡中右键,选择项,浏览选择下载的Ext.Net.dll,如下图。

     


     

     


     

     


     

    点“确定”后,刚才新建的选项卡中如下所示,

     

     

     

     

    至此,选项卡添加完成。

    PS:Ext.NET系列的通病就是设计时支持相当糟糕,,从工具箱中拖拽控件用处不大,其次官方能给出的文档少之又少,还好,大部分可以参考Sencha Ext JS API文档

    配置Web.config

    手动修改Web.config,添加httpModules节,完整代码如下

     

    <?xml version="1.0"?>

    <configuration>

     <system.web>

        <httpModules>

          <add name="DirectRequestModuletype="Ext.Net.DirectRequestModule, Ext.Net" />

        </httpModules>

        <compilation debug="truetargetFramework="4.0">

          <assemblies>

            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

          </assemblies>

        </compilation>

     </system.web>

    </configuration>

     

     

     

    一.    从布局说起

    从工具箱中拖拽一个ViewPort到在刚才新建的aspx页面Form1中,项目自动添加了对Ext.NET.DLL的引用,并在页面上面添加了如下代码,作用不解释,你懂得。

     

    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

     

     

     

     

    下来看看一个简单的录入界面布局。

    在aspx文件源视图中修改页面代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Chapter1.WebForm1" %>

     

    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %><%--必须有--%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

        <title>布局示例</title>

    </head>

    <body>

        <form id="form1" runat="server">

        <ext:ResourceManager ID="ResourceManager1" runat="server" /><%--必须有--%>

        <ext:Viewport ID="Viewport1" runat="server" Layout="FitLayout"><%--Layout="FitLayout" 拉伸布局--%>

            <Items>

                <ext:FormPanel runat="server" Frame="true" LabelWidth="40"><%--LabelWidth="40" Label宽40,根据Label文字总宽度手动设定--%>

                    <Items>

                        <ext:Container ID="Container1" runat="server" Layout="Column" Height="106"LabelAlign="Left">

                            <Items>

                                <ext:Container ID="Container2" runat="server" ColumnWidth=".5" Layout="FormLayout" LabelWidth="40"><%-- Layout="FormLayout" Form布局,ColumnWidth=".5" 列宽50% --%>

                                    <Items>

                                        <ext:TextField runat="server" ID="txtName" FieldLabel="姓名"AnchorHorizontal="95%"/><%--AnchorHorizontal="95%",总体宽95% --%>

                                        <ext:RadioGroup runat="server" ID="rdoSex" FieldLabel="性别">

                                            <Items>

                                                <ext:Radio runat="server" ID="rdoSexMen" BoxLabel="男士" />

                                                <ext:Radio runat="server" ID="rdoSexWoman" BoxLabel="女士" />

                                            </Items>

                                        </ext:RadioGroup>

                                        <ext:NumberField runat="server" ID="numAge" MinValue="1" FieldLabel="年龄" AnchorHorizontal="95%" />

                                        <ext:TextField runat="server" ID="txtEmail" AllowBlank="false" FieldLabel="邮箱" AnchorHorizontal="95%" />

                                    </Items>

                                </ext:Container>

                                <ext:Container ID="Container3" runat="server" ColumnWidth=".5" Layout="FormLayout" LabelWidth="40">

                                    <Items>

                                        <ext:TextField runat="server" ID="txtCode" FieldLabel="编码"AnchorHorizontal="100%" />

                                        <ext:TextField runat="server" ID="txtTl" FieldLabel="电话" AnchorHorizontal="100%" Disabled="true" />

                                        <ext:ComboBox runat="server" ID="cmbProvince" FieldLabel="省份" AnchorHorizontal="100%" Editable="false" AllowBlank="false" />

                                        <ext:DateField runat="server" ID="dfBirthDay" FieldLabel="生日" AnchorHorizontal="100%" Editable="false" AllowBlank="false" Format="yyyy-MM-dd" />

                                    </Items>

                                </ext:Container>

                            </Items>

                        </ext:Container>

                        <ext:HtmlEditor runat="server" ID="txtIntro" AllowBlank="true" FieldLabel="简介" AnchorHorizontal="100%" AnchorVertical="-106" />

                     <%--AnchorVertical="-106" 缩回了106px,高度=页面总高-106,与Container1的Height对应,也就是此控件上面的总高度 --%>

     

                    </Items>

                </ext:FormPanel>

            </Items>

        </ext:Viewport>

        </form>

    </body>

    </html>
     
    F5调试效果如下,一个自适应高度及宽度的页面随之诞生了。

     

     

     

    常用的页面布局示例在官方示例中都有涉及到。

    如下图,有13中布局可供参考。

    原文链接:

    http://www.cnblogs.com/goga21cn/archive/2011/06/19/extnetexample1.html
  • 相关阅读:
    ExtJS小技巧
    Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
    NPM 私服
    IDEA 不编译java以外的文件
    SQL 引号中的问号在PrepareStatement 中不被看作是占位符
    Chrome 浏览器自动填表呈现淡黄色解决
    批量删除Maven 仓库未下载成功.lastupdate 的文件
    Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
    Hibernate 自动更新表出错 建表或添加列,提示标识符无效
    Hibernate 自动更新表出错 More than one table found in namespace
  • 原文地址:https://www.cnblogs.com/skyapplezhao/p/2294766.html
Copyright © 2011-2022 走看看