问题描述
页面中有20个textbox框,分别为txt1,txt2……txt20有没有办法通过循环分别给他们取值
解决方案
解决方案二:
把这些控件名放在一个数组中.然后从数组中读出每一个元素取值即可....
解决方案三:
嗯,楼上说的不错
解决方案四:
用数组
解决方案五:
个人认为可以先在客户端将数据取出来用Javascript的方法vartxt=document.all['txt'];然后便利txt得到数据后用_dopostback()再传到服务器端就可以了
解决方案六:
StringtempStr="";for(inti=0;i<=20;i++)tempStr+=((TextBox)FindControl("txt"+i)).Text;
解决方案七:
foreach(ControlcinPage.Form.Controls){if(c.GetType().ToString()=="System.Web.UI.WebControls.TextBox"){TextBoxtmp=casTextBox;tmp.Text="111";}}
解决方案八:
form1为aspx前台FORM表单的id.foreach(System.Web.UI.Controlctrlinthis.FindControl("Form1").Controls){if(ctrlisTextBox){((TextBox)ctrl).Text="11";}}}
解决方案九:
String[]tempStr=newstring[20]for(inti=0;i<=20;i++)tempStr[i]=((TextBox)this.FindControl("txt"+i)).Text;
解决方案十:
有没有办法通过循环分别给他们取值==>可以
解决方案十一:
for(inti=0;i<20;i++){((TextBox)Page.Controls[i]).Text="aaaaaaaaaa";}一个思路,我在Panel里做过。没在页面里做过。
解决方案十二:
for(inti=1;i<Request.Form.Count-1;i++){Response.Write(Request.Form[i]+"<br>");}
解决方案十三:
学习
解决方案十四:
mark
解决方案十五:
如果不确定页面上有多少个TextBox呢,又是如何操作的?请高手帮忙
解决方案:
//如果不确定页面上有多少个TextBox呢,又是如何操作的?请高手帮忙是动态添加吗?也可以在后台读取到啊.
解决方案:
inti=0;foreach(ControlobjControlinForm.Controls){if(objControl.GetType()==typeof(TextBox)){((TextBox)objControl).Text=(i++).ToString();}}
解决方案:
谢谢
解决方案:
但现在我要怎么动态添加呢?我动态添加的是<inputtype="text"id="text1"runat="server"/>这样可以得到结果吗?
解决方案:
应该如何添加服务器控件?
解决方案:
问题1:foreach(ControlobjControlinForm.Controls){if(objControl.GetType()==typeof(TextBox)){((TextBox)objControl).Text="d";}}问题2:TextBoxtb=newTextBox();tb.ID="txtBox1";this.Panel1.Controls.Add(tb);
解决方案:
可是动态加上去后,到获取的时候它不存在啦?例如,我动态加载的时候:TextBoxtb=newTextBox();tb.ID="txtBox1";this.Panel1.Controls.Add(tb);但获取的时候却找不到ID为:txtBox1的TextBox控件啦如果我在获取的时候再加载一次,那之前所输入的值就一定为空了怎么解决?请指教
解决方案:
protectedvoidButton1_Click(objectsender,EventArgse){Response.Write((this.Panel1.FindControl("txtBox1")asTextBox).Text+"dd");}可以获取到的.下边这个放在!isPostBack下就获取不到了.因为刷新了..自己想一下吧TextBoxtb=newTextBox();tb.ID="txtBox1";this.Panel1.Controls.Add(tb);
解决方案:
for(i=1;i<=20;i++){document.getElementById("txt"+i).value=i;}
解决方案:
写个方法!function方法名(){for(i=1;i<=20;i++){document.getElementById("txt"+i).value=i;}}在BODY的ONLOAD事件触发!
解决方案:
思路得到页面的全部空间集合,再判断每个控件的类型是不是文本框,如果是赋值!
解决方案:
记得给我加分!我的答案能解决你的问题!
解决方案:
mark
解决方案:
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadIfNotpage.IsPostBackThenBindDDLProGroupCode()EndIfIfNot(ViewState("Count")IsNothing)ThenDimiAsIntegerFori=0To(Convert.ToInt16(ViewState("Count")))-1AddTextBox()NextiElseBindTable()'btnUpdate.Enabled=FalseEndIfEndSubPrivateSubAddTextBox()'插入行'CountId=Table1.Rows.countDimtrAsTableRowtr=NewTableRowDimtcAsTableCelltc=NewTableCellDimtc1AsTableCelltc1=NewTableCellDimtxt1AsCheckBoxtxt1=NewCheckBoxtxt1.ID="tb1"&Table1.Rows.Counttxt1.Font.Size=FontUnit.Point(9)txt1.width=Unit.Pixel(40)'刪除Dimtc2AsTableCelltc2=NewTableCellDimtxt2AsTextBoxtxt2=NewTextBoxtxt2.ID="tb2"&Table1.Rows.Counttxt2.width=Unit.Pixel(80)'工程順txt2.text=Table1.Rows.Count+1'(Table1.Rows.Count+1)+9*(Table1.Rows.Count+1)Dimtc3AsTableCelltc3=NewTableCellDimtxt3AsDropDownListtxt3=NewDropDownListtxt3.ID="tb3"&Table1.Rows.Counttxt3.width=Unit.Pixel(150)'工程Code詳細工程CodeDimmyConnection1AsNewOracleConnection(ConfigurationSettings.AppSettings("ConnectionString"))myConnection1.open()DimstrOracleSQLAsString'strOracleSQL="SELECTDETAILPROCODEFROMTDETAILPROMASTERbwhereDETAILPROCODElike'"&left(Ucase(Trim(DDLProGroupCode.SelectedItem.Value)),2)&"%"&"'orderby1"strOracleSQL="SELECTDETAILPROCODE||chr(13)||DETAILPRONAMEDETAILPROCODE,DETAILPROCODEDETAILPROCODE1FROMTDETAILPROMASTERbwhereDETAILPROCODElike'"&left(Ucase(Trim(DDLProGroupCode.SelectedItem.Value)),2)&"%"&"'orderby1"DimMAINPROCODEDataAsDataSet''['||DimdsCommandAsOracleDataAdapterdsCommand=NewOracleDataAdapter(strOracleSQL,myConnection1)MAINPROCODEData=NewDataSetdsCommand.Fill(MAINPROCODEData,"DETAILPROCODE")txt3.DataSource=MAINPROCODEData.Tables(0)txt3.DataValueField="DETAILPROCODE1"txt3.DataTextField="DETAILPROCODE"txt3.DataBind()myConnection1.close()myConnection1.Dispose()AddHandlertxt3.SelectedIndexChanged,AddressOfWcNameSelectedIndexChangedtxt3.AutoPostBack=TrueDimtc4AsTableCelltc4=NewTableCellDimtxt4AsTextBoxtxt4=NewTextBoxtxt4.ID="tb4"&Table1.Rows.Counttxt4.width=Unit.Pixel(120)'工程名稱'txt4.text=""'txt4.Enabled=False'True'Dimtc5AsTableCelltc5=NewTableCellDimtxt5AsTextBoxtxt5=NewTextBoxtxt5.ID="tb5"&Table1.Rows.Counttxt5.width=Unit.Pixel(40)'keyno'txt5.text=""'txt5.visible=False'True''tc5.visible=False'txt5.Enabled=Falsetc1.Controls.Add(txt1)tc2.Controls.Add(txt2)tc3.Controls.Add(txt3)tc4.Controls.Add(txt4)tc5.Controls.Add(txt5)tr.Cells.Add(tc1)tr.Cells.Add(tc2)tr.Cells.Add(tc3)tr.Cells.Add(tc4)tr.Cells.Add(tc5)Table1.Rows.Add(tr)tr.Attributes("onMouseOver")="javascript:this.style.backgroundColor='#dedfde';cursor='hand';"tr.Attributes("onMouseOut")="javascript:this.style.backgroundColor='#bbfaff';"EndSub'插入文本框PrivateSubbtnInsertRow_onclick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnInsertRow.ClickTable1.visible=TrueAddTextBox()ViewState("Count")=Convert.ToInt16(ViewState("Count"))+1'EndSub'插入行我把控件TextBox放在Table1里,一行有五個TextBox(當然你可以設為更多),當你按一下插入Button就增加一行TextBox.很好哦!自己消化我上面的代碼吧!
解决方案:
TextBox[]text={txt1,txt2,........}然后循环读取数组就可以了
解决方案:
嗯方法还不少。。
解决方案:
foreach(ControlcinForm.Controls){if(cisTextBox){TextBoxt=casTextBox;if(t!=null){t.Text="zzzzzzz";}}}
解决方案:
如果是动态添加的话,你可以试着使用如下代码:动态添加:不能使用asp.net控件,只能使用<inputtype=text>取值NameValueCollectionnvc=Request.Form;string[]cName=nvc.AllKeys;for(inti=0;i<cName.Length;i++){if(cName[i].StartsWith("txtSingle"))//文本框ID的前缀{string[]cValue=nvc.GetValues(cName[i]);stringcCount="";for(intj=0;j<cValue.Length;j++)cCount=Server.HtmlEncode(cValue[j]);//cCount指的是它的值}}
解决方案:
如果是动态添加的话,你可以试着使用如下代码:动态添加:不能使用asp.net控件,只能使用<inputtype=text>取值NameValueCollectionnvc=Request.Form;string[]cName=nvc.AllKeys;for(inti=0;i<cName.Length;i++){if(cName[i].StartsWith("txtSingle"))//文本框ID的前缀{string[]cValue=nvc.GetValues(cName[i]);stringcCount="";for(intj=0;j<cValue.Length;j++)cCount=Server.HtmlEncode(cValue[j]);//cCount指的是它的值}}
解决方案:
你可以试着将里面的txtSingle改为你的txt
解决方案:
Javascript方法,建议使用:functionGetTextboxValue(){varelements=document.getElementByTagName("input");for(vari=0;i<elements.length;i++){if(elements[i].id.indexOf("txt")==0){//TODO:添加取值代码elements[i].value}}}
如果在服务器端,需要遍历所有控件遍历控件的时候要考虑TextBox的层次
解决方案:
不好意思,上面代码有错误第二行应改为:varelements=document.getElementsByTagName("input");
解决方案:
学习
解决方案:
方法挺多哈
解决方案:
up