弄清楚问题,首先看这篇http://www.cnblogs.com/insus/archive/2011/11/08/2241255.html
你可以看到博文的的2楼朋友回复使用了js技术把问题解决了,然后Insus.NET在4楼做了二个假设。
开发过程中,客户有可能不断要求,便有此两个假设。接下来,我们(有可能是另外一些程序员,不是自己)是要怎样面对不断变化的要求,让维护简单,容易与轻松。

解决方案 »

  1.   

     如果要加5个页面那就在5个页面上实现TextBoxValue接口,至于控件名称或者是函数计算出来的都在实现接口的方法中实现,这样设计没啥问题啊。用js还是session还是数据库,这个根据你自己项目实际需要吧,他们之间的区别当然显而易见
      

  2.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Insus.NET;public partial class _Default : System.Web.UI.Page,IGetable
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }    //Insus.NET:实现接口
        public string TextBoxValue
        {
            get {
                return this.TextBox1.Text;
            }
        }

    第一个假设,如果在现要有基础上,再加上5个aspx,每个aspx的TextBox的ID都不一样。其它四个ID如TypeV,TextBox6,txtName,Txt8。
    如果有这样的需求   
    你的扩展方法 
    是否是在IGetable接口里 在另外增加4个属性 
    然后 页面上也要额外的实现这4个新增的属性?
      

  3.   

    不好意思  理解错了你的意思是 只是控件的Id改变 或者数据来源改变  而不是数量上的改变。那写一个通用函数,是否能解决问题?  function AddItem(value)
           {
               document.getElementById("DropDownList").options.add(new Option(value, ""));
           } 
      

  4.   

    这个还是js吧,如果要添加到数据库那就用下ajax
      

  5.   

    个人觉得 js 还是按钮提交 区别不大的吧,只是一个数据字典的管理,不能要求开发人员js水平吧定义好自己的后台实现方式倒是应该的,开发人员自己选择js ajax还是按钮事件瞎写的一段        public string FormatSortDateTime(string strTime)
            {
                DateTime time = DateTime.Parse(strTime);
                return time.ToShortDateString();
            }        public static void Add(string value, Func<string, string> format)
            {
                string formatValue = format(value);
                //持久化
                //...
            }        public static List<string> GetList(string id)
            {
                return null;
            }        //js的话就使用ajax调用add方法,再重新获取数据        //以下是页面按钮提交模拟
            public void btnButton1_click()
            {
                var page = (IGetable)this.Page;
                string value = page.TextBoxValue;
                DataDictionaryManager.Add(value, s => s.ToLower());
                //已定义的格式
                DataDictionaryManager.Add(value, FormatSortDateTime);
                this.DataBind();
            }