zoukankan      html  css  js  c++  java
  • 【自然框架】之鼠标点功能现(二):表单控件的“应用”—— 代码?只写需要的!

    【自然框架】之鼠标点功能现(一):单表的增删改查(即上次5月23日活动的一个主题)【Demo、源码下载】

          看了大家的回复,好像不少人误会了,我为了突出“鼠标点,功能现”,所以没有说代码,没有贴代码,这就让一些人认为我想要完全抛弃VS,自己写一个“平台”来代替,不好意思,您高估我了,我可达不到。我只是想“简单的事情点鼠标就可以了,复杂的事情就要写代码了”。

          还是举例子吧。比如说上次里的【表8:添加列表信息】、【表9:功能按钮】(添加按钮)、【表12:修改查询条件】、【表13:调整表单布局】
    、【表15:修改字段配置信息】、【表16:新闻管理】这几个图里面的表单页面,其实都是DataForm.aspx页面,就是说他们使用的是同一个页面。

     【表8:添加列表信息】

          说到这里您可能会想,这个页面得多复杂呀,是不是要写n多代码呀?其实很简单。贴个代码:

    .aspx页面

     1 <%@ Page validateRequest="false"  Language="C#" AutoEventWireup="true" CodeBehind="DataForm1.aspx.cs" Inherits="Nature.Manage.DataForm1" %>
     2 
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml" >
     6 <head runat="server">
     7     <title><%=this.Lbl_Title.Text %></title>
     8     <%=CssWeb%> 
     9     <script language="javascript" type="text/javascript" src="/public/js/myreturn.js"></script>
    10     <script language="javascript" type="text/javascript" src="/public/js/check.js"></script>
    11     
    12     <script language="javascript" type="text/javascript">
    13         var fid = "";
    14         
    15         fid = "<%=ForeignID%>";
    16         function myCheck()
    17         {
    18             return CheckForm();
    19         }
    20     
    21         function myLoad()
    22         {
    23             if (myTxtID)
    24                 if (document.getElementById(myTxtID))
    25                     document.getElementById(myTxtID).focus();
    26                     
    27             
    28         }
    29         
    30     </script>
    31 </head>
    32 <body>
    33     <form id="form1" runat="server">
    34     <div style="100%; font-size:12pt; text-align: center;vertical-align:middle;">
    35         <asp:Label ID="Lbl_Title" runat="server" style="font-size:14pt; "></asp:Label>
    36     </div>
    37     <div style="100%; text-align: center;vertical-align:middle;">
    38         <Nature:MyForm ID="myForm" runat="server" onformbinded="myForm_FormBinded" />
    39         <asp:Button ID="Btn_Save" runat="server" Text=" 保 存 " />
    40 &nbsp; 
    41 &nbsp;</div>
    42     </form>
    43 </body>
    44 </html>
    45 

    一共就这么几行,主要是拽进来一个表单控件。

    再看.aspx.cs页面。

     1 using Nature;
     2 using Nature.Data;
     3 using Nature.Common;
     4 using Nature.WebControls;
     5 
     6 
     7 namespace Nature.Manage
     8 {
     9     /// <summary>
    10     /// 通用表单页面
    11     /// </summary>
    12     public partial class DataForm1 : CommonClass.BasePageForm
    13     {
    14         protected void Page_Load(object sender, EventArgs e)
    15         {
    16 
    17         }
    18 
    19         #region 保存记录,可以使添加,也可以是修改
    20         protected override void Btn_Save_Click(object sender, EventArgs e)
    21         {
    22             this.myForm.SaveData();
    23             Functions.PageRegisterJavascript(Page, "myReturn()");
    24         }
    25         #endregion
    26 
    27         #region 表单控件绑定后触发的事件
    28         protected void myForm_FormBinded(object sender, EventArgs e)
    29         {
    30 
    31             //获取表里面的外键字段
    32 
    33             string ForeignColumnID = dal.ExecuteString("select ForeignColumnID from Manage_Function_Info where FunctionID = " + this.FunctionID);
    34             if (ForeignColumnID != null)
    35             {
    36                 //查找外键对应的控件
    37                 MyTextBox txt = (MyTextBox)myForm.FindControl("c_" + ForeignColumnID);
    38                 if (txt != null)
    39                     txt.Text = base.ForeignID;
    40             }
    41 
    42         }
    43         #endregion
    44 
    45     }
    46 }

    还是这么几行,一点都不复杂,这个页面就是应对简单的添加、修改用的,简单的没有特殊需求的都可以用这个页面,但是如果遇到复杂的情况,那就要在单独写一个页面了,比如前面的【表6:添加节点】,要添加一个子节点,就要对几个字段进行计算,用这个页面就不适合了,但是我不会为了让DataForm.aspx能够添加节点,而去修改这个页面,而是在单独做一个页面 —— NoteMod.aspx 在这个页面里实现添加节点的功能。对了,添加节点有特殊的地方,但是修改节点就没有什么特殊的了,对于修改节点,那么就可以使用DataForm.aspx页面了。

     NoteMod.aspx 的代码:

     1 <body>
     2     <form id="form1" runat="server">
     3     <div style="100%; font-size:12pt; text-align: center;vertical-align:middle;">
     4         <asp:Label ID="Lbl_Title" runat="server" style="font-size:14pt; "></asp:Label>
     5     </div>
     6     <div style="100%; text-align: center;vertical-align:middle;">
     7         <Nature:MyForm ID="myForm" runat="server" onformbinded="myForm_FormBinded" />
     8         <asp:Button ID="Btn_Save" runat="server" Text=" 保 存 " />
     9 &nbsp; 
    10 &nbsp;</div>
    11     </form>
    12 </body>

    NoteMod.aspx.cs代码:

      1using Nature.User;
      2using Nature;
      3using Nature.Data;
      4using Nature.Common;
      5using Nature.WebControls;
      6
      7namespace Nature.Manage
      8{
      9    /// <summary>
     10    /// 功能节点的添加、修改
     11    /// </summary>

     12    public partial class NoteMod : CommonClass.BasePageForm   
     13    {
     14        protected void Page_Load(object sender, EventArgs e)
     15        {
     16
     17        }

     18
     19        保存节点
     39
     40        表单控件绑定后触发的事件
     72
     73        添加子节点
    128
    129        添加兄弟节点
    209
    210        //一会移动到表单控件里面
    211        protected void SetFormControlValue(MyForm form,string columnID,string value)
    212        {
    213            WebControl webControl;
    214
    215            webControl = (WebControl)form.FindControl("c_" + columnID);   //查找功能节点ID
    216            ((IControlMgr)webControl).ControlValue = value;
    217
    218        }

    219    }

    220}

    这里的代码就复杂了一些,但是也是围绕表单控件来做的。

  • 相关阅读:
    EntityFramework
    在项目中整合log4net日志模块
    java Socket编程
    java动态代理
    多项式计算的Horner法则(秦九韶法则)
    1.6打印字符串排列
    1.5 输出整数N的二进制1的个数(递归)
    1.3输出任意实数
    Java super关键字调用父类的方法疑惑
    vs2010配置MPI
  • 原文地址:https://www.cnblogs.com/jyk/p/1507594.html
Copyright © 2011-2022 走看看