当数据源中没有数据时,DetailsView不可见。

7
如何在基础数据源中没有数据的情况下显示DetailsView?问题在于当DetailsView不可见时,命令按钮也不可见。因此我无法向数据库插入新记录。我希望始终显示具有ReadOnly设置的DetailsView。
如果不可能,我想请求解决此问题的方法。我所想到的一个解决方案是检查数据源是否有任何记录。如果没有,则以编程方式更改DefaultMode为Insert。但这会引起另一个问题-如何计算DataSource中的记录数。
所有我的问题都与ASP 3.5相关。
1个回答

12

您需要添加一个EmptyDataTemplate:

   <asp:DetailsView ID="MyDV" runat="server">
        <EmptyDataTemplate>
            <asp:Button ID="InsertButton" runat="server" CommandName="New" />
        </EmptyDataTemplate>
   </asp:DetailsView>

这仍然不起作用。如果我点击“新建”按钮,我只会得到“插入”和“取消”链接,但没有文本框可输入任何内容。 - Timwi
@Timwi 你的InsertItemTemplate中有任何TextBox控件吗?它们不会自动出现,你必须手动添加它们。 - Ben Robinson
@BenRobinson:为什么我只有在数据库表中没有行的情况下才需要添加它们,但在所有其他情况下它们都会神奇地出现?这只是糟糕的设计。 - Timwi
@Timwi,这取决于你是否使用模板字段或绑定字段。 - Ben Robinson
我只是想指出,当您使用模板字段时,需要为每种模式提供一个模板,否则该模式将为空白,而如果您使用绑定字段,则会自动发生。 - Ben Robinson
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接