ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)

 

废话少说,服务端的方法基本上是不可行的,麻烦,没有详细去试,只有依赖于客户端脚本了:

 

下面的函数每执行一次就生成一个TextBox(其实是<input type="Text">)

    var  i = 0 ;
    
function  changeIt()
    {
    
if (i < 5 )
    {
        i
= i + 1 ;
        skils
= ' skill ' + i;
        my_div.innerHTML 
=  my_div.innerHTML  + "  <input type='text' id=' "   +  skils  +   " '> " ;
    }
    
else
    {
    }
    }

 

我们来之行它:点击以下就添加一个TB:

 

         < id ="addSkills"  href ="javascript:changeIt();" > Add More </ a >

 

好,文本框是显示出来了,但它是在客户端生成的,不能保存状态,跟服务端无法直接沟通,它们的值我们怎么来取呢?——Hidden Field,老办法。。。

 

 

         < asp:HiddenField  ID ="Skills"  runat ="server"   />

 

     function  getValues()
    {
        document.getElementById(
" Skills " ).value = document.getElementById( ' skill1 ' ).value + " | " ;
        document.getElementById(
" Skills " ).value += document.getElementById( ' skill2 ' ).value + " | " ;
        document.getElementById(
" Skills " ).value += document.getElementById( ' skill3 ' ).value + " | " ;
        document.getElementById(
" Skills " ).value += document.getElementById( ' skill4 ' ).value + " | " ;
        document.getElementById(
" Skills " ).value += document.getElementById( ' skill5 ' ).value + " | " ;
        window.alert(document.getElementById(
" Skills " ).value);
    }

 

这样,就把这些TEXTBox们的值存入了Hidden Field,我们在服务端取一下看看:

 

 

         < asp:Button  ID ="Button3"  OnClientClick ="javascript:getValues();"  runat ="server"  
            Text
="get from client-side"  onclick ="Button3_Click" />

 

     protected   void  Button3_Click( object  sender, EventArgs e)
    {
        
string  val = this .Skills.Value;
        Response.Write(val);
    }

 

ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)

取出来了:

ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)

 

 

全部代码在此:

 

Code

 

 

Code

你可能感兴趣的:(asp.net)