我初学asp.net 做一个教师档案管理系统,现在想实现这样一个功能:
教师档案中有《论文发表情况》一栏,默认状态下只出现一组TextBox,具体是:
论文题目,发表刊物,发表时间
当有多篇论文时我想放一个"继续添加"按钮,当按按钮时又出现这样一组TextBox:
论文题目,发表刊物,发表时间
请问该怎么实现啊

解决方案 »

  1.   

    1.HTML空件<input type="Text">直接用js输出来,用Request取值
    2. 
       TextBox tb = new TextBox();
       tb.id = "a"
       XXX.add(tb); //XXX为一个父控件
      

  2.   

    好像楼主问.net技术的应该到.net技术里去发言。
      

  3.   

    PlaceHolder控件里可以动态添加相关控件!
      

  4.   

    其实不用再添加控件,只要清空已有TextBox就行了呀,你在你的"继续添加"按钮处理程序中处理一下有关的值就行了
      

  5.   

    首先你的页面要有一个属性,通过它在ViewState中保存“一共有几组输入控件”这一信息,默认值(当ViewState中未保存初始值的时候)是返回1,每当按添加按钮的时候,首先给这个值+1。至少在你的Page_Load事件处理程序结束之前,要根据上述值创建多组控件(至少包括label和textbox两种)。具体代码说起来挺复杂,你多试几次就能掌握规律。关键是要注意至少给所有的textbox控件设置id属性,并且是在填入宿主控件(例如上面说的placeholder)之前指定id属性。这可以通知asp.net将以前textbox以及客户端操作的结果重新装入页面,如果不这样“重建”控件组,那么用户在客户端录入的数据就丢失了。然后你在那个“添加”按钮的事件中再增加一组控件,注意id值要指定好。
      

  6.   

    首先要使用viewstate(用session也行),记录一共按了几次"添加"按钮,就是要生成几个textbox,否则每次刷新都会重新载入页面,都只会看到一个textbox.
        在"添加按钮"的click事件中只要写使viewstate或者session的值累加就可以了.    
        在页面上添加一个placeholder或者table(web窗体控件)作为容器.
        接着自己写一个"生成textbox的函数",其中使用ADD函数来添加控件了,重点是要指定ID.
        最后是在Page主函数里也,根据viewstate或者session的值,使用FOR语句调用那个写好的"生成textbox的函数".要使用这些动态控件就使用函数:findcontrol(控件id)
        其实在注重速度的时候,不推荐使用这样的方式,用javascript的方式最好了.