注册 登录
编程论坛 ASP.NET技术论坛

获取文本框的值?????

jalonlovesja 发布于 2008-04-01 11:13, 3196 次点击
动态添加列:
function findObj(theObj, theDoc)
        {
             var p, i, foundObj;
             if(!theDoc) theDoc = document;
             if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
             {    theDoc = parent.frames[theObj.substring(p+1)].document;theObj = theObj.substring(0,p);}if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];for (i=0; !foundObj && i < theDoc.forms.length; i++) foundObj = theDoc.forms[i][theObj];for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);    return foundObj;
        }
        function AddSignRow()
        { //读取最后一行的行号,存放在txtTRLastIndex文本框中
             var txtTRLastIndex = findObj("txtTRLastIndex",document);
             var rowID = parseInt(txtTRLastIndex.value);
             var signFrame = findObj("SignFrame",document);
             //添加行
             var newTR = signFrame.insertRow(signFrame.rows.length);
             newTR.id = "SignItem" + rowID;         
             //添加列:序号
             var newNameTD=newTR.insertCell(0);
             //添加列内容
             newNameTD.innerHTML = newTR.rowIndex.toString();         
             //添加列:
             var newNameTD=newTR.insertCell(1);
             //添加列内容
             newNameTD.innerHTML = "<input name='txtColorName" + rowID + "' id='txtColorName" + rowID + "' type='text' size='12'/>";         
             //添加列:
             var newEmailTD=newTR.insertCell(2);
             //添加列内容
             newEmailTD.innerHTML = "<input name='txtColorUserName" + rowID + "' id='txtColorUserName" + rowID + "' type='text' size='20'/>";         
             //添加列:
             var newTelTD=newTR.insertCell(3);
             //添加列内容
             newTelTD.innerHTML = "<input name='txtColorCode" + rowID + "' id='txtColorCode" + rowID + "' type='text' size='10'/>";
             //将行号推进下一行
             txtTRLastIndex.value = (rowID + 1).toString() ;
        }
        function ClearAllSign()
        {
             if(confirm('确定要清空所有颜色吗?'))
             {
                  var signFrame = findObj("SignFrame",document);
                  var rowscount = signFrame.rows.length;              
                  //循环删除行,从最后一行往前删除
                  for(i=rowscount - 1;i > 0; i--)
                  {
                    signFrame.deleteRow(i);
                  }              
              //重置最后行号为1
              var txtTRLastIndex = findObj("txtTRLastIndex",document);
              txtTRLastIndex.value = "1";              
              //预添加一行
              AddSignRow();
             }
             }
这段是动态添加文本框的代码,我想知道在CS里面怎么俩获取到我动态添加文本框里面的那个值了???
9 回复
#2
仰望星空2008-04-01 15:20
Request.Form("")用这个试试
#3
jalonlovesja2008-04-01 18:57
这个不行了
 我试过了
#4
hebingbing2008-04-01 19:04
这不是C#写的吧?
看不懂
#5
hebingbing2008-04-01 19:18
虽然我看不懂,但是我给你提供一个思想……
声明一个全局变量n(你动态添加的数量)
然后在你添加的同时给文本框取id
最后循环应该就可以解决的……

[[it] 本帖最后由 hebingbing 于 2008-4-1 19:25 编辑 [/it]]
#6
hebingbing2008-04-01 19:22
给你举个简单的例子吧:
for(inr i = 1 ; 1 < =n ; i++) n就是你想添加的数目
{
TextBox MyText = new TextBox ();
MyText.ID = "TextBox" + i.ToString();
PlaceHolder1.Controls.Add(MyRadioButton);
}
这样你就可以取得textbox的值了。
#7
hebingbing2008-04-01 19:37
我不是看的很懂啊,我看你的那个代码应该是可以取得的。你看你写的这句:
newEmailTD.innerHTML = "<input name='txtColorUserName" + rowID + "' id='txtColorUserName" + rowID + "' type='text' size='20'/>";  
   
你看控件的id了吗?
id='txtColorUserName" + rowID + "'
所以你按道理是可以直接用id取得值的……
最后
for(i=1;i<rowID;i++)
{
在这里直接用id取得里面的值就应该ok了……
}
#8
gadden2008-04-01 20:12
我也没看懂你写的这个,不过,要想取得值必须有一个runat=server(至少有一个和服务器交互的控件或者内置代码块)。不然就放弃念头吧。
我也是刚知道的。
#9
寻找2008-04-01 20:39
[bo]以下是引用 [un]gadden[/un] 在 2008-4-1 20:12 的发言:[/bo]

我也没看懂你写的这个,不过,要想取得值必须有一个runat=server(至少有一个和服务器交互的控件或者内置代码块)。不然就放弃念头吧。
我也是刚知道的。 ...


runat=server是告诉你所使用的语言(如C#或VB)来处理你的控件。
#10
jalonlovesja2008-04-02 09:49
谢谢各位的指点了,我已经把问题解决了。TKS
1