• EXT与.net的结合方法


    自己对于界面的开发一向很烦,为了实现自己的想法总是要花很多的时间,结果开发进度达不到自己的计划要求,EXT开发界面应该很不错,但没有直接实用过,以下是网上转来的一个EXT与.net结合的方法,有空值得试用一下。

    回顾学习EXT的过程,自己一直从事.NET快速开发(不喜欢JAVA平台比较乱的Jar包,版本控制力太差)。EXT虽然是纯UI东东,但似乎跟JAVA一直有着亲蜜的关系,找的所有成型点的例子中,跟JAVA的居多,用WebService和ASP的都非常不适用,Ext的界面设计非常方便,但通信起来,只有用JSON或XML等中间件来传递,存在解译成本和传递成本,WebService即要花N多安全功夫,效率也很低,加上用LINQ镜像延时,用.net来做EXT实在很痛苦,跟ASPX淘汰的刷新机制无太大差别。今天我就是来解放大家的

    我喜欢EXT,终于想到了一个超完美的整合

    1。VS2008支持JS单步调试,可设断点调试JS,(不用代码提示,可以提高自己的熟练度,自己看看要不要在VS2008里面加代码提示的JS文件吧)

    2。母版将所有JS调用全定义好

    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="Ext2Empty.master.cs" Inherits="tmksoft.Web.Ext2Empty" %>
    <html>
    <head runat="server">
        <title>TMKSOFT CRM V2.0</title>
             <script type="text/javascript">
             var BaseUrl = "<%=BaseUrl%>";
             </script>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            <link rel="stylesheet" type="text/css" href="../Javascript/ext/resources/css/ext-all.css" />
            <script type="text/javascript" src="<%=BaseUrl%>Javascript/ext/adapter/ext/ext-base.js"></script>
            <script type="text/javascript" src="<%=BaseUrl%>Javascript/ext/ext-all.js"></script>
            <script type="text/javascript" src="<%=BaseUrl%>Javascript/ext/build/locale/ext-lang-zh_CN.js"></script>
    <%--        <script type="text/javascript">
                 Ext.util.CSS.swapStyleSheet("theme", "<%=BaseUrl%>App_Themes/slate/css/skin.css");
            </script>--%>
           
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ContentPlaceHolder id="ContentMainWorkSpace" runat="server">
                
            </asp:ContentPlaceHolder>
        </div>
        </form>
    </body>
    </html>

    3。所有网页继承母版,后台类直接写C#方法即可,爱怎么写就怎么样。

            Ajax类的通信取代,如下代码

            [Ajax.AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
            public bool UserCheck(string name,string pass)
            {
                if (name.Equals("aa") && pass.Equals("aa"))
                {
                    return true;
                    Session["Uname"] = name;
                    Session["Upass"] = pass;
                }
                else
                {
                    return false;
                }
            }

    4。前台JS-AJAX直接调用服务器方法

    //现在只需直接调用类.方法,就行了,效率测试非常不错,页面无刷新,所见即所得,太爽了吧!!

        var login = function(){
              var c=Login.UserCheck(document.getElementById('Uname').value,document.getElementById('Upass').value);
              if(c.value==true)
              {
              alert('通过');
              }
              else{
              alert('不通过');
              }
              var ck=Login.SessionCheck();
              if(ck.value){alert('已登陆')}else{alert('未登陆');}

    //原来的EXT实现很麻烦,需要按下面的步骤来

    //        // 执行当前表单面板的submit
    //        f.form.submit({
    //            // 动作发生期间显示的文本信息
    //                waitMsg : '正在登录......',
    //                // submit发生时指向的地址
    //                url : 'http://localhost:2020/Service1.asmx/UserLogin',
    //                // 表单提交方式
    //                method : 'POST',
    //                // 数据验证通过时发生的动作
    //                success : function(form, action){
    //                    window.location.href = 'index.htm';
    //                },
    //                // 反之......
    //                failure : function(form, action){
    //                    reset();
    //                    if (action.failureType == Ext.form.Action.SERVER_INVALID)
    //                        Ext.MessageBox.alert('警告', action.result.errors.msg);
    //                }
    //            });

    EXT超完美整合终于完成了,只须3分钟你就能快速用Xtype画出界面(因为有代码提示和单步调试),只须3分钟你就能快速完成数据库增删查改的代码(因为微软C#帮我们做了太多),只须3分钟你就能把前台和后台联结起来(即是独立的UI-JS界面,又是独立的业务逻辑层),还有1分钟我们出去逗逗隔壁公司的小妹妹吧。


    原文来自:雨枫技术教程网 http://www.fengfly.com/
    原文网址:http://www.fengfly.com/plus/view-40659-1.html

  • 相关阅读:
    C# git .gitignore文件
    Python常用库
    STM32移植LWIP之客户端与服务端的数据传输
    linux_cam_test文件
    DEBUG调试文件
    Linux多线程总结
    Git add命令
    Git使用总结
    C语言中可变参数的使用
    Hi3518EV300编译U-Boot和内核报错:loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. Aborted (core dumped)
  • 原文地址:https://www.cnblogs.com/Rising/p/1773333.html
Copyright © 2020-2023  润新知