表单视图控件与表,控件在tr设置到运行服务器不能插入

本文关键字:控件 运行 服务器 不能 插入 设置 视图 表单 tr | 更新日期: 2023-09-27 18:05:14

这里有一个奇怪的情况。在我的FormView控件中,我将<table>用于布局。与行(<tr>)我添加ID s和runat="server"。插入只保存了一些数据,我认为这很奇怪。我查看了为什么这些字段被存储而其他字段没有被存储,唯一的区别是我没有将IDrunat="server"添加到<tr>中。删除"runat"可以使插入正常工作。

我认为这与初始化行的方式与控件或FormView初始化的方式有关。有什么想法吗?现在,我要从表行中删除ID

表单视图控件与表,控件在tr设置到运行服务器不能插入

你的想法是对的。

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"标签;因为它们只是用于显示目的,所以在服务器端并不需要它们。

我希望这能让你明白一些。