【发布时间】:2015-08-12 17:36:27
【问题描述】:
所以我有一个填充了来自 objectdatasource 的数据的 gridview。在那个对象数据源中,我还指定了我的删除和选择方法。但是,由于某种原因,删除和选择不起作用(或者我收到错误 必须在 GridView 'GridView1' 上指定数据键,然后才能检索所选数据键。使用 DataKeyNames 属性指定数据键。 ,或者它什么都不做)。这意味着 datakeyname 未设置或错误,但已设置(据我所知,它是正确的)?
我正在使用 BO 和 DAL 类。
博:
public int OrderID
{
get { return _ID; }
set { _ID = value; }
}
DAL(删除),如果我得到删除,我会尝试自己再次找出选择。
[DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
public static int DeleteOrder(Int32 OrderID)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
string sql =
"DELETE FROM tblOrders WHERE ID=@OrderID";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@OrderID", OrderID);
conn.Open();
int i = cmd.ExecuteNonQuery();
conn.Close();
return i;
}
aspx(网格视图):
<asp:GridView ID="GridView1" runat="server" DataKeyNames="OrderID" DataSourceID="dtsrcOrder" AutoGenerateColumns="False" AllowPaging="True"
EnableViewState="False" CssClass="gv" GridLines="None" Height="63px" Width="527px" CellPadding="4" ForeColor="#333333">
<Columns>
<asp:BoundField DataField="OrderID" HeaderText="ID" SortExpression="OrderID"></asp:BoundField>
<asp:BoundField DataField="OrderNAME" HeaderText="Naam" SortExpression="OrderNAME"></asp:BoundField>
<asp:BoundField DataField="OrderBOOK_ID" HeaderText="Boek" SortExpression="OrderBOOK_ID"></asp:BoundField>
<asp:BoundField DataField="OrderCOUNT" HeaderText="Aantal" SortExpression="OrderCOUNT"></asp:BoundField>
<asp:CheckBoxField DataField="OrderPAID" HeaderText="Betaald" SortExpression="OrderPAID"></asp:CheckBoxField>
<asp:CommandField ShowDeleteButton="True" ShowSelectButton="True"></asp:CommandField>
</Columns>
</asp:GridView>
aspx 对象数据源:
<asp:ObjectDataSource ID="dtsrcOrder" runat="server" DeleteMethod="DeleteOrder" SelectMethod="GetOrdersbyID" TypeName="DAL.OrdersDAL"
DataObjectTypeName="BO.Order">
<DeleteParameters>
<asp:Parameter Name="OrderID" Type="Int32"></asp:Parameter>
</DeleteParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" PropertyName="SelectedValue" Name="OrderID" Type="Int32"></asp:ControlParameter>
</SelectParameters>
</asp:ObjectDataSource>
有人能看出我的错误吗?
【问题讨论】: