我正在尝试使用在我尝试写入.aspx页面的.vb文件中动态声明的复选框。我可以使用Response.write从.vb类中写一个正常的复选框“
<input type='checkbox />
”,但是当使用
<asp:Checkbox runat='server' />
我需要通过是否将盒子检回服务器,因为如果检查了一个盒子,我必须批准某些东西,否则拒绝某些东西另一个被检查或如果两个都没有被检查则什么也不做。我已经弄清楚如何使它们互相排斥,这不是问题。有没有人有任何建议?
答案 0 :(得分:1)
您的问题在于编译页面的顺序:当您放置像asp:checkbox
这样的asp控件时,它会被编译成一个常规复选框,当它被发送到客户端时会附加一些javascript。
当您从代码隐藏中将字符串“<input type='checkbox />
”写入页面时,它会将该字符串直接写入页面,在aspx页面编译其控件之后,但由于这是有效的html浏览器呈现控件。当您编写asp:checkbox
时,浏览器不知道如何处理它,因为它不是有效的html。此外,该页面已经编译,因此.net无法为您创建正确的控件。
您需要通过
后面的代码创建一个新控件,以编程方式将控件添加到网页This site does a great job explaining it
而且@toodles似乎很有意思。编写静态html和asp.net是两个完全不同的球类游戏。我会花一点时间(比如几小时/几天)reading / watching学习材料来帮助你站起来。
答案 1 :(得分:1)
你得到的技术答案都很好。但是,您的问题表明您确实需要从学习asp.net服务器控件的工作方式开始。我建议您花几个小时观看视频http://asp.net,特别是http://www.asp.net/general/videos/intro-to-aspnet-controls
然后专注于理解页面生命周期,你将有足够的基础知识在asp.net上更加有效。玩得开心!
答案 2 :(得分:0)
您不能使用response.write来创建服务器控件。 请参阅此站点以获取正确方法的示例: http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspx