表单视图控件与表,控件在tr设置到运行服务器不能插入
本文关键字:控件 运行 服务器 不能 插入 设置 视图 表单 tr | 更新日期: 2023-09-27 18:05:14
这里有一个奇怪的情况。在我的FormView
控件中,我将<table>
用于布局。与行(<tr>
)我添加ID
s和runat="server"
。插入只保存了一些数据,我认为这很奇怪。我查看了为什么这些字段被存储而其他字段没有被存储,唯一的区别是我没有将ID
或runat="server"
添加到<tr>
中。删除"runat"可以使插入正常工作。
我认为这与初始化行的方式与控件或FormView
初始化的方式有关。有什么想法吗?现在,我要从表行中删除ID
。
你的想法是对的。
FormView
只查看顶层控件。如果您将一个预期的输入控件嵌入到另一个服务器端控件中,则FormView
看不到它(它被隐藏在外部控件中)。即使在代码隐藏中,也必须使用FindControl
方法从服务器端获取输入标记<tr>
因此,如果你有这个:
<tr ID="row1" runat="server">
<asp:TextBox ID="myTB" runat="server">12</asp:TextBox>
</tr>
FormView
唯一看到的是顶级元素(<tr>
)。你甚至不会在代码中看到TextBox
,除非你这样做:
TextBox myTB = (TextBox)row1.FindControl("myTB");
所以我的建议是从<tr>
元素中去掉"runat"answers"ID"标签;因为它们只是用于显示目的,所以在服务器端并不需要它们。
我希望这能让你明白一些。