5 messaggi dal 31 marzo 2003
ciao a tutti,

ho utilizzato un ObjectDataSource e sfruttando la proprietà DataObjectTypeName ho creato i metodi per l'aggiornamento dei dati.

I metodi sono del tipo:

<DataObjectMethodAttribute(DataObjectMethodType.Insert, True)> _
Public Function InsertEntitiesWithRules(ByVal obj As Group) As Integer
...
End Function

Avendo la necessita di passare al metodo ulteriori parametri, utilizzo ad esempio:

<DataObjectMethodAttribute(DataObjectMethodType.Insert, True)> _
Public Function InsertEntitiesWithRules(ByVal obj As Group, Byval i as integer) As Integer
...
End Function

ma questo tipo di signature solleva l'eccezione seguente:

ObjectDataSource 'odsGroupsDetail' could not find a non-generic method 'InsertEntitiesWithRules' that takes parameters of type 'MyDataComponent.Group'.

Sembrerebbe che tali metodi possano avere 1 SOLO parametro del tipo specificato in DataObjectTypeName, oppure c'è qualche workaround?

grazie a tutti
in modo dichiarativo non credo, puoi sempre gestire i vari eventi che ODS mette a disposizione, ma onestamente non ho mai provato.


forse rinunciando a specificare DataObjectTypeName e gestendo tutto a mano negli eventi che ti dicevo

ciao marco
Modificato da nostromo il 20 agosto 2008 18.56 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
quà:

http://msdn.microsoft.com/en-us/library/57hkzhy5.aspx

se non ci hai già bazzicato dovresti trovare molte informazione che potrebbero essere utili

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
ti ho fatto un piccolo esempio:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for BLL
/// </summary>
public class BLL
{
    List<BLLItem> _list = new List<BLLItem>();
   
    public BLL()
    {
        _list.Add(new BLLItem{Name="Marco", Surname="Leoncini"});
        _list.Add(new BLLItem { Name = "aAessio", Surname = "Leoncini" });


    }

    public List<BLLItem> GetList()
    {
        return _list;
    }

    public void Update(BLLItem item, string mokValue)
    { }

}

public class BLLItem
{
    public string Name { get; set; }
    public string Surname { get; set; }
}


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">


    protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        object _mockValue = e.InputParameters["mokValue"];
        BLLItem _item = new BLLItem { Name = (string)e.InputParameters["Name"], Surname = (string)e.InputParameters["Surname"] };
        e.InputParameters.Clear();
        e.InputParameters.Add("item", _item);
        e.InputParameters.Add("mokValue", _mockValue);
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
            onupdating="ObjectDataSource1_Updating" SelectMethod="GetList" TypeName="BLL" 
            UpdateMethod="Update">
            <UpdateParameters>
                <asp:Parameter Name="item" Type="Object" />
                <asp:Parameter Name="mokValue" Type="String" />
            </UpdateParameters>
        </asp:ObjectDataSource>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="ObjectDataSource1">
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Surname" HeaderText="Surname" 
                    SortExpression="Surname" />
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>


come ti dicevo si deve gestire la cosa un pò a mano

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.