Problemas com os métodos Delete e Insert do ObjectDataSource de um GridView no ASP.NET
Eu quero usar um ObjectDataSource com um GridView no ASP.NET. A exibição dos dados no GridView funciona. Agora, adiciono um CommandField ao GridView para permitir também a edição dos dados. O método Update funciona bem, mas tenho problemas ao excluir e inserir:
Quando clico no link Excluir no GridView, o DeleteMethod configurado é chamado, mas com o erro testSystemEndpoint parâmetro. Em vez do objeto de negócios que deve ser excluído, é uma instância simples com todos os campos sendo 'nulos'. Portanto, o DeleteMethod configurado não pode excluir a entrad Quando clico no link Inserir no GridView, nada acontece. O InsertMethod configurado não é chamado.My ObjectDataSource aparece assim:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DataObjectTypeName="[...].TSEndpoint"
DeleteMethod="Remove" InsertMethod="Add"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetTSEndpoints"
TypeName="[...].TSRepository"
UpdateMethod="Update"></asp:ObjectDataSource>
@ My BusinessObject Manager é TSRepository.cs:
[DataObject]
public class TSRepository : ITSRepository
{
private ISessionFactory _sessionFactory;
private Configuration _configuration;
public TSRepository()
{
_configuration = new Configuration();
_configuration.Configure();
_configuration.AddAssembly(typeof(TSEndpoint).Assembly);
_sessionFactory = _configuration.BuildSessionFactory();
}
[DataObjectMethod(DataObjectMethodType.Insert)]
public void Add(TSEndpoint testSystemEndpoint)
{
if (testSystemEndpoint != null)
{
using (ISession session = NHibernateHelper.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(testSystemEndpoint);
transaction.Commit();
}
}
}
[DataObjectMethod(DataObjectMethodType.Update)]
public void Update(TSEndpoint testSystemEndpoint)
{
using (ISession session = NHibernateHelper.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.Update(testSystemEndpoint);
transaction.Commit();
}
}
[DataObjectMethod(DataObjectMethodType.Delete)]
public void Remove(TSEndpoint testSystemEndpoint)
{
using (ISession session = NHibernateHelper.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.Delete(testSystemEndpoint);
transaction.Commit();
}
}
[DataObjectMethod(DataObjectMethodType.Select)]
public ICollection<TSEndpoint> GetTSEndpoints()
{
using (ISession session = NHibernateHelper.OpenSession())
{
var testSystems = session
.CreateCriteria(typeof(TSEndpoint))
.List<TSEndpoint>();
return testSystems;
}
}
}
Ficaria muito feliz se alguém pudesse me ajudar com meus dois problema