0
我的删除参数有问题。我正在使用一个GridView和一个ObjectDataSource。 我想删除一行。但是,当我调试时发现CustomerId的值在我的业务逻辑层中始终为0。删除一行的参数
这里是我的代码
我有两个删除参数,Id
和CustomerId
。这些与我BLL中的名称相同。
<asp:GridView DataKeyNames="Id" ID="gvFavoriteMovies" DataSourceID="odsFavoriteMovies" AutoGenerateColumns="False"
runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblTitel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Title")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsFavoriteFilm" runat="server"
TypeName="MovieMonstrDataLayer.bll.BLLMovies"
SelectMethod="GetFavoriteMoviesFromUser"
DeleteMethod="DeleteFavoriteMoviesFromUser"
onobjectcreating="odsFavoriteFilm_ObjectCreating"
ondeleting="odsFavoriteFilm_Deleting">
<DeleteParameters>
<asp:Parameter Name="Id" DbType="Int32" Direction="Input" />
<asp:Parameter Name="CustomerId" DbType="Int32" Direction="Input" />
</DeleteParameters>
<SelectParameters>
<asp:Parameter DbType="Int32" Direction="Input" Name="CustomerId" />
</SelectParameters>
</asp:ObjectDataSource>
这是隐藏文件
当删除行的代码,我分配登录用户的删除参数CustomerId
的价值。这一切都有效。我给正确的值给删除参数。
protected void odsFavoriteFilm_Deleting(object sender, ObjectDataSourceMethodEventArgs e)
{
if (Context.User.Identity.IsAuthenticated)
{
this.odsFavoriteFilm.DeleteParameters["CustomerId"].DefaultValue = ((MovieMonstrIdentity)Context.User.Identity).Customer.Id.ToString();
this.odsFavoriteFilm.DataBind();
}
}
通常在我的业务逻辑层,我现在应该得到正确的CustomerId
,但我总是得到0。虽然没有负荷消费有一个ID。
public int DeleteFavoriteFilmFromUser(int Id, int CustomerId)
{
try
{
return Adapter.DeleteFavoriteFilmFromUser(Id, CustomerId);
}
catch (Exception ex)
{
throw ex;
}
}
我做错了什么?
我撰写建议设置的实际参数值答案,但出于好奇心,你为ID获得什么价值? – bitxwise 2010-11-27 16:20:08
ID是电影的ID。我在BLL中获得了正确的电影编号。 – Vinzcent 2010-11-27 16:22:06