动态创建textarea问题(在线等)

corbet 2008-03-31 03:20:25
如下方法动态创建textarea时,如果添加runat="server"就会报错,说'txt"+i+"'不是有效的标识符,可是如果不添加就没有办法从后台获取TEXTAREA中输入的数据,请问该怎样解决啊?
newCell.innerHTML="<td><TEXTAREA id='txt"+i+"' runat="server"></TEXTAREA></td>"
...全文
357 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunrain_yingxi 2008-04-02
  • 打赏
  • 举报
回复
string str="";
switch (i)
{

case 0 :
str="txt"+i.ToString();
newCell.innerHTML=" <td vAlign='middle' width='180'> <TEXTAREA id='"+str+"' style='OVERFLOW-Y: visible; WIDTH: 180px' runat='server' > </TEXTAREA> </td>";
break;
case 1 : newCell.innerHTML=" <td vAlign='middle' width='180'> <TEXTAREA id=txt"+tempRow+""+i+" style='OVERFLOW-Y: visible; WIDTH: 180px' > </TEXTAREA> </td>";break;
}
guyehanxinlei 2008-04-02
  • 打赏
  • 举报
回复
需要放在容器控件中的
corbet 2008-04-02
  • 打赏
  • 举报
回复
<TEXTAREA id="txt00" style="OVERFLOW-Y: visible; WIDTH: 180px"></TEXTAREA>
这样添加的,没有 runat="server" ,如何用C#在后台取值呢?
corbet 2008-04-02
  • 打赏
  • 举报
回复
谁来帮帮我啊~~~~~~
corbet 2008-04-02
  • 打赏
  • 举报
回复
真的没有人会啊?再加100分~
blackant2 2008-04-02
  • 打赏
  • 举报
回复
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
protected void submit_Click(object sender, EventArgs e)
{
foreach (string key in Request.Form.Keys)
{
if (key.Length>8 && key.Substring(0, 8) == "textarea")
Response.Write(String.Format("key:{0};values:{1}<br/>", key, Request.Form[key]));
}
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function addtextarea(){
var parent=document.getElementById("content");
var el=document.createElement("TextArea");
el.name=el.id="textarea"+parent.childNodes.length;
parent.appendChild(el);

}
</script>
</head>
<body>
<input type="button" onclick="javascript:addtextarea()" value="add textarea" />
<form id="form1" runat="server">

<div id="content">

</div>
<asp:Button runat="server" ID="submit" onclick="submit_Click" />
</form>
</body>
</html>
corbet 2008-04-02
  • 打赏
  • 举报
回复
楼上朋友,这种方法也试过,只要一加 runat='server' ,一样会报标识符错误。郁闷
yuanjun_xf 2008-04-01
  • 打赏
  • 举报
回复
提交表单就可以接收到了吧!我市搞java的,一般就是用form 提交的方式!
request 得到
corbet 2008-04-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 blackant2 的回复:]
newCell.innerHTML=" <td> <TEXTAREA id='txt"+i+"' runat="server"> </TEXTAREA> </td>"
应该是js中使用吧
=""+i+""server""正确吗
不是id='txt"+i+"'应该是没有问题的, +"' runat="server"> </TEXTAREA> </td>"
应该提示不准确
另外在js中使用runat="server"没有任何意义,应该对textarea准备name
服务端使用form接收
比如
newCell.innerHTML=" <td> <TEXTAREA id='txt"+i+"' name='txt"+i+"'> </TE…
[/Quote]

谢谢,不过请问,如果不使用 runat="server",我在服务端该怎样获取 TEXTAREA 中用户输入的值呢?
您说的 “服务端使用form接收 ”该怎样做?
我要做的就是前台动态创建 TEXTAREA ,后台获取内容。谢谢
xxyxxyxxyxxyxxyou 2008-03-31
  • 打赏
  • 举报
回复
HtmlTextArea t = new HtmlTextArea();
t.ID = "txt";
t.ClientID = "ttt";
ghj5454 2008-03-31
  • 打赏
  • 举报
回复
在后台创建服务器控件,必须加到容器里面。
xxyxxyxxyxxyxxyou 2008-03-31
  • 打赏
  • 举报
回复
用textbox试试呢
再设成MultiLine
blackant2 2008-03-31
  • 打赏
  • 举报
回复
newCell.innerHTML=" <td> <TEXTAREA id='txt"+i+"' runat="server"> </TEXTAREA> </td>"
应该是js中使用吧
=""+i+""server""正确吗
不是id='txt"+i+"'应该是没有问题的, +"' runat="server"> </TEXTAREA> </td>"
应该提示不准确
另外在js中使用runat="server"没有任何意义,应该对textarea准备name
服务端使用form接收
比如
newCell.innerHTML=" <td> <TEXTAREA id='txt"+i+"' name='txt"+i+"'> </TEXTAREA> </td>"
grearo 2008-03-31
  • 打赏
  • 举报
回复
楼主用js建立动态的TextBox
然后用后台程序控制,

你想想js是客户端程序,你说的后台控制用的是服务器端程序。
方法一:在程序中写:Response.write("<script>setTimeOut('你的JS控制函数',500)</script>")
方法二:采用AJAX控制客户端与服务器端之间的通信。
scq2099yt 2008-03-31
  • 打赏
  • 举报
回复
up
发表于 2008-03-31
  • 打赏
  • 举报
回复
var i ;
corbet 2008-03-31
  • 打赏
  • 举报
回复
function insertRows()
{
tempRow=table1.rows.length-1;
maxRows=tempRow;
tempRow=tempRow+1;
var Rows=table1.rows;
var newRow=table1.insertRow(table1.rows.length);
var Cells=newRow.cells;
for (i=0;i <2;i++)
{
var newCell=Rows(newRow.rowIndex).insertCell(Cells.length);
switch (i)
{
case 0 : newCell.innerHTML=" <td> <TEXTAREA id='txt"+i.ToString()+"' runat='server' > </TEXTAREA> </td>";break;
case 1 : newCell.innerHTML=" <td> <TEXTAREA id='txt"+i+"'> </TEXTAREA> </td>";break;
}
}
maxRows+=1;
}
corbet 2008-03-31
  • 打赏
  • 举报
回复
还是不行啊,代码如下:
function insertRows()
{
document.all.txtRows.value=table1.rows.length;
tempRow=table1.rows.length-1;
maxRows=tempRow;
tempRow=tempRow+1;
var Rows=table1.rows;
var newRow=table1.insertRow(table1.rows.length);
var Cells=newRow.cells;
for (i=0;i<2;i++)
{
var newCell=Rows(newRow.rowIndex).insertCell(Cells.length);
newCell.align="center";
switch (i)
{
case 0 : newCell.innerHTML="<td vAlign='middle' width='180'><TEXTAREA id='txt"+i.ToString()+"' style='OVERFLOW-Y: visible; WIDTH: 180px' runat='server' ></TEXTAREA></td>";break;
case 1 : newCell.innerHTML="<td vAlign='middle' width='180'><TEXTAREA id=txt"+tempRow+""+i+" style='OVERFLOW-Y: visible; WIDTH: 180px' ></TEXTAREA></td>";break;
}
}
maxRows+=1;
}
北京的雾霾天 2008-03-31
  • 打赏
  • 举报
回复
i.ToString();

corbet 2008-03-31
  • 打赏
  • 举报
回复
各位老大,有没有什么办法啊,分不够可以再加~急啊·
加载更多回复(2)

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧