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

 

取出来了:

 

 

全部代码在此:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
ExpandedBlockStart.gifContractedBlock.gif<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>Untitled Page</title>

ExpandedBlockStart.gifContractedBlock.gif    
<script language="javascript" type="text/javascript">
    
var i=0;
    
function changeIt()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
    
if(i<5)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        i
=i+1;
        skils
='skill'+i;
        my_div.innerHTML 
= my_div.innerHTML +" <input type='text' id='" + skils + "'>";
    }

    
else
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
    }

    }

    
function getValues()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        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);
    }

    
</script>

</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:HiddenField ID="Skills" runat="server" />
        
<id="addSkills" href="javascript:changeIt();">Add More</a>
        
<asp:Button ID="Button3" OnClientClick="javascript:getValues();" runat="server" 
            Text
="get from client-side" onclick="Button3_Click"
           
/>
        
<div id="my_div">
        
</div>
    
</div>
    
</form>
</body>
</html>

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page 
ExpandedBlockStart.gifContractedBlock.gif
{
    
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{

    }

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值