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:

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

取出来了:

全部代码在此:


<%@ 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>

    <script language="javascript" type="text/javascript">
    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
    {
    }
    }
    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);
    }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:HiddenField ID="Skills" runat="server" />
        <a 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>


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 
{
    protected void Page_Load(object sender, EventArgs e)
    {

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

时间: 2024-10-12 03:17:09

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

Asp.net中使用文本框的值动态生成控件的方法

这篇文章主要介绍了Asp.net中使用文本框的值动态生成控件的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 看到一个网友,有论坛上问及,动态的生成checkbox控件,在文本框中输入一个"花"字,点一下"生成"按钮,就会在下面生成一个checkbox,它的text属性是"花".再输入一个"鸟",点一下按钮,就会生成第二个checkbox控件,text属性是"鸟"... Insus.NET的解决方法

使用Htmlhelper,创建文本框TextBox

下面通过HtmlHelper帮助类,创建文本框. 首先新建一个实体类,做为下面的例子: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVCRestartlearnning.Models { public class Student { /// <summary> /// 学号 /// </summary> public int Stude

MVC动态添加文本框,后台使用FormCollection接收

在"MVC批量添加,增加一条记录的同时添加N条集合属性所对应的个体"中,对于前台传来的多个TextBox值,在控制器方法中通过强类型来接收.使用FormCollection也可以接收来自前台的多个TextBox值.实现效果如下: 动态添加TextBox: 后台使用FormCollection接收来自前台的TextBox值,再以TempData把接收到的值返回: 当页面没有TextBox,点击"移除",提示"没有文本框可被移除": 在HomeCon

通过js动态生成文本框,怎么把文本框中的值传到java后台?

通过js动态生成文本框,怎么把文本框中的值传到java后台? 1 var lengths; 2 function insertrow2() //增加的一行方法2 3 { 4 newRow=document.all.yltable.insertRow(-1); 5 lengths = document.all.yltable.rows.length; 6 7 newcell=newRow.insertCell() ; 8 newRow.bgColor='#FFFFFF'; 9 newcell.al

JS实现动态提示文本框可输入剩余字数(类似发表微博数字提示)

一.实现效果: 为了更直观的体现用户在文本框输入文本时能看到自己输入了多少字,项目中需要通过判断提示文本框剩余可输入字数. html & JS: 1 <div> 2 <textarea name="content" id="content" onkeyup="javascript:checkWords(this);" onmousedown="javascript:checkWords(this);"

word中创建文本框

word中创建文本框         在插入中点击"文本框"选项卡,如下图所示:        手工添加自己想要的文本框格式,然后选择所创建的文本框,在工具栏处会发现多了一个"格式"选项卡,点击,可以对文本框进行设置,如外观的纹理等等,如下图所示: word中创建文本框

ASP.Net动态创建GridView

1.创建Field BoundField requestitem = new BoundField();//注意Field可以是ButtonField,TemplateField,...等等GridView支持的Field 2.添加Field requestitem.DataField requestItem.DataField = dataField; //dataField指的得是绑定的数据源中定义的某个字段的名字,比如数据源为DataSet,包含一个数据表,数据表中包含一行名字为"ID&q

通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效

<!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> <meta http-equiv="content-

根据文本内容动态计算文本框高度的步骤

在视图加载的过程中,是先计算出frame,再根据frame加载视图的,所以在设计计算高度的方法的时候,设计成加号方法; //首先给外界提供计算cell高度的方法 + (CGFloat)heightForRowWithDic:(NSDictionary *)dic { //cell高度 = nameLabel高度 + contentLabel高度 + 间距; return [self heightForText:dic[@"content"]] + 30 + kHeight_NameLa