这是思归以前帖出来的代码,能不能有哪位能改一下把上传控件改为下拉框和文本框?或者有更好的方案?但是一定要贴出,读取每一个控件的值的代码,谢谢各位高手,谢谢!!!!<form>
<div id="dvFiles"></div>
<input type="button" value="add" onclick="addFile()">
</form><script language="javascript">
var i = 1;
function addFile()
{
var dv = document.getElementById("dvFiles"); var file = document.createElement("input");
file.type = "file";
file.id = file.name = "file" + i; dv.appendChild(file); var btn = document.createElement("input");
btn.type = "button";
btn.id = btn.name = "btn" + i;
btn.value = "delete file " +i; btn.onclick = function() {
var b = document.getElementById(btn.id);
dv.removeChild(b.nextSibling); //remove <BR>
dv.removeChild(b.previousSibling); //file
dv.removeChild(b); //btn
} dv.appendChild(btn);
dv.appendChild(document.createElement("BR")); i++;
}
</script>
<div id="dvFiles"></div>
<input type="button" value="add" onclick="addFile()">
</form><script language="javascript">
var i = 1;
function addFile()
{
var dv = document.getElementById("dvFiles"); var file = document.createElement("input");
file.type = "file";
file.id = file.name = "file" + i; dv.appendChild(file); var btn = document.createElement("input");
btn.type = "button";
btn.id = btn.name = "btn" + i;
btn.value = "delete file " +i; btn.onclick = function() {
var b = document.getElementById(btn.id);
dv.removeChild(b.nextSibling); //remove <BR>
dv.removeChild(b.previousSibling); //file
dv.removeChild(b); //btn
} dv.appendChild(btn);
dv.appendChild(document.createElement("BR")); i++;
}
</script>
但是刷新后不能保持值的状态
<Script runat="server">
Sub page_load()Dim drop as dropdownlist
drop=new dropdownlist
pl1.controls.add(drop)
drop.id="d1"End SubSub addct(s as object,e as eventargs)
Dim drop as dropdownlist
drop=new dropdownlist
pl1.controls.clear()
pl1.controls.add(drop)
drop.id="d1"drop.items.add(new listitem("Shanghai","0"))
drop.items.add(new listitem("Beijin","1"))
End sub
</Script>
<html>
<body>
<form runat="server">
<asp:button id="ad" runat="server" text="增加" onclick="addct"/>
<asp:panel id="pl1" runat="server"/></form>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<TITLE>WebForm1</TITLE>
<META name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<META name="CODE_LANGUAGE" Content="C#">
<META name="vs_defaultClientScript" content="JavaScript">
<META name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<BODY MS_POSITIONING="GridLayout">
<FORM id="Form1" method="post" runat="server">
<ASP:BUTTON ID="Button1" Runat="server" Text="取值"></ASP:BUTTON>
<DIV id="dvFiles"></DIV>
<INPUT type="button" value="添加" onclick="Add()">
<INPUT type="hidden" id="hidCount" runat="server">
</FORM>
</BODY>
</HTML>
<FORM></FORM><SCRIPT language="javascript">
var i = 1;
function Add()
{
var dv = document.getElementById("dvFiles"); var txt = document.createElement("input");
txt.type = "text";
txt.id = txt.name = "TextBox" + i;
dv.appendChild(txt); var ddl = document.createElement("select");
ddl.options.add(new Option("Shanghai",0));
ddl.options.add(new Option("BeiJin",1));
ddl.name = "ddl"+i;
dv.appendChild(ddl);
var btnDelte = document.createElement("input");
btnDelte.type = "button";
btnDelte.value = "删除本行"
btnDelte.index = i;
dv.appendChild(btnDelte); btnDelte.onclick = function()
{
var b = event.srcElement;
dv.removeChild(b.previousSibling.previousSibling); //text
dv.removeChild(b.previousSibling); //ddl dv.removeChild(b.nextSibling);//<BR>"
dv.removeChild(b); //btn
} dv.appendChild(btnDelte);
dv.appendChild(document.createElement("BR")); Form1.hidCount.value = i;
i++;
}
</SCRIPT>取值:private void Button1_Click(object sender, System.EventArgs e)
{
if(this.hidCount.Value !="")
{
int iCount = Convert.ToInt32(this.hidCount.Value);
for(int i=1;i<iCount+1;i++)
{
string sText = Request.Form["TextBox"+i.ToString()];
string sDDL = Request.Form["Ddl"+i.ToString()]; Response.Write(sText+ ","+ sDDL +"<BR>");
}
}
}说明:由于是前台增加的控件,postback 后应该会消失,但可取值.
好像一点取值按钮就都没有了