VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 826|回复: 7

动态添加控件,runat=server?

[复制链接]

2

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-16 17:20:01 | 显示全部楼层 |阅读模式
想点击Mon动态添加4个控件,原先放在.cs中写,发现postback后会消失,所以放在html中写。现在希望点击button2后能获得text0,text1,text3的值,但是一旦把str   +=   "<input id=id"+inputNum+"  type=text  name=text"+inputNum+">"; 变成str   +=   "<input id=id"+inputNum+"  type=text  runat=server name=text"+inputNum+">"; 后就出错。请问要是不加runat=server,可否在.cs中得到text0.value?
<script>   
var   inputNum   =   0;
function   create()   
{                                             
var   str   =   "";
str   +=   "<input id=id"+inputNum+"  type=text  name=text"+inputNum+">";
inputNum++;
str   +=   "<input   type=text   name=text"+inputNum+">";
inputNum++;
str   +=   "<input   type=radio  name=text"+inputNum+">";
inputNum++;
str   +=   "<input   type=text   name=text"+inputNum+"><br>";
ice.innerHTML   =   ice.innerHTML   + str;   
}
</script>
....
<tr>
<td>
<asp:Label id="Label3" runat="server" onclick="create()">Label</asp:Label>
</td>
</tr>
....
<asp:Button id="Button2" runat="server" Text="Button"></asp:Button>
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-1-21 11:09:01 | 显示全部楼层
还是要放在.cs中写。

postback会消失。是因为加了 !this.IsPostBack. 去掉就好了。

runat="Server"是asp.net解释的。在客户端生成的html中包含runat="server"是没有用的。
回复

使用道具 举报

2

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-1-25 22:36:01 | 显示全部楼层
按楼上的意思,就是点击button先执行一遍动态添加的代码,在PAGE—LOAD里再做一遍?
回复

使用道具 举报

0

主题

58

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-1-26 09:45:01 | 显示全部楼层
动态添加的代码必须每次都执行一遍。
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-26 19:54:01 | 显示全部楼层
可以考虑运用JS来动态生成控件。而要在隐藏代码中获取其值,可以用hidden来传送!
回复

使用道具 举报

2

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-1-26 22:27:01 | 显示全部楼层
to:可以考虑运用JS来动态生成控件。而要在隐藏代码中获取其值,可以用hidden来传送!
原来就是这样想的,但是用了RESPONSE.FORM[HIDDEN1]有错误产生
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-8-18 22:45:01 | 显示全部楼层
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-18 23:00:01 | 显示全部楼层
<script>   
var   inputNum   =   0;
function   create()   
{            
var   str   =   "";
str   +=   "<input id=id"+inputNum+"  type=text  name=text"+inputNum+">";
inputNum++;
str   +=   "<input   type=text   name=text"+inputNum+">";
inputNum++;
str   +=   "<input   type=radio  name=text"+inputNum+">";
inputNum++;
str   +=   "<input   type=text   name=text"+inputNum+"><br/>";
ice.innerHTML   =   ice.innerHTML   + str;   
}
function setvalue()
{
document.getElementById("myHidden").value = document.getElementById("id0").value
}
</script>
....
<tr>
<td>
<asp:Label id="Label3" runat="server" onclick="create()">Label</asp:Label>
<input type=hidden id=myHidden runat=server>
</td>
</tr>
....
<asp:Button id="Button2" runat="server" Text="Button"></asp:Button>

后台加载时添加:
Button2.Attributes.Add("onclick", "setvalue()");
后台Button2的click事件中获取值:
string text0_Value = this.myHidden.Value;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表