DetailsView 插入模式下竟然要求 Select 操作

作者:vkvi 来源:ITPOW(原创) 日期:2009-11-29
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
    TypeName="Cftea.Test.Class1"
    InsertMethod="Insert"></asp:ObjectDataSource>
<asp:DetailsView ID="DetailsView1" runat="server"
    DataSourceID="ObjectDataSource1"
    DefaultMode="Insert">

以上代码中,通过 DetailsView 展现输入框,客户端点击提交后,通过 ObjectDataSource1 的 InsertMethod 对应的方法,执行数据保存。

可是在打开页面时出现:

除非指定 SelectMethod,否则 ObjectDataSource“ObjectDataSource1”不支持 Select 操作。

为什么我在插入时也要求有“Select”呢?我又不是显示详细信息。

原来,DetailsView 默认的 AutoGenerateRows 为 true,它要自动产生行,就必须去读,然后他才知道如何产生。所以上述代码应该为:

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
    TypeName="Cftea.Test.Class1"
    InsertMethod="Insert"></asp:ObjectDataSource>
<asp:DetailsView ID="DetailsView1" runat="server"
    DataSourceID="ObjectDataSource1"
    AutoGenerateRows="false"  DefaultMode="Insert">

相关阅读

相关文章