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);
    }

 

取出来了:

 

 

全部代码在此:

 

Code

 

 

Code
posted @ 2008-08-06 11:03  LanceZhang  阅读(3115)  评论(10编辑  收藏  举报