71 messaggi dal 06 settembre 2007
Ciao,
ho definito una GridView che contempla la facoltà di effetture un'operazione d'insert;
la gridview è associata ad un objectdatasource che richiamo un metodo business del tipo "Add(Articles article)" per effettuare la insert.
L'operazione d'insert viene scatenata dall'evento click del bottone inserito come FooterTemplate nella GridView e di cui vi posto il codice:

protected void btn_new_Click(object sender, EventArgs e)
{

string _title;
string _body;
string _author;

_title = ((TextBox)GridView1.FooterRow.FindControl("Title")).Text;
_body = ((TextBox)GridView1.FooterRow.FindControl("Body")).Text;
_author = ((TextBox)GridView1.FooterRow.FindControl("Author")).Text;


if (!string.IsNullOrEmpty(_title) && !string.IsNullOrEmpty(_author))
{
Articles newarticle = new Articles();
newarticle.Title = _title;
newarticle.Body = _body;
newarticle.Author = _author;

ObjectDataSource1.Insert();

GridView1.DataBind();
}

}

Ottengo il seguente errore:

Message="ObjectDataSource 'ObjectDataSource1' non presenta valori da inserire. Verificare che nel dizionario 'values' siano contenuti valori."

La mia domanda è:"come faccio a passare la variabile "newarticle" che è del tipo "Articles" all'objectdatasource?
grazie
daniga
devi gestire l'evento Inserting e aggiungere l'oggetto nella collezione NewValues se non erro

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

http://nostromo.spaces.live.com/default.aspx
71 messaggi dal 06 settembre 2007
ci avevo pensato ma l'evento inserting dell'objectdatasource non scatta quando premo il bottone d'inserimento.
Mi sa che devo far tutto nell'evento "btn_new_Click":
io pensavo di fare una chiamata di questo tipo:
ObjectDataSource1.Insert(newarticle);
ma nessun override del metodo "Insert" accetta parametri.
il GridView non ha un supporto per l'inserimento, ti conviee usare un ListView, altrimenti l'utilità di utilizzare un ObjectDataSource si azzera.

proprio perche l'ObjectDataSource "colleziona" i paramentri dal controllo al quale è associato, se questo non supporta l'inserimento il tutto non può funzionare a dovere

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

http://nostromo.spaces.live.com/default.aspx
71 messaggi dal 06 settembre 2007
Ho risolto ugualmente con la GridView:

Articles newarticle = new Articles();
string _title;
string _body;
string _author;
string _datep;

_title = ((TextBox)GridView1.FooterRow.FindControl("Title")).Text;
_body = ((TextBox)GridView1.FooterRow.FindControl("Body")).Text;
_author = ((TextBox)GridView1.FooterRow.FindControl("Author")).Text;
_datep = ((TextBox)GridView1.FooterRow.FindControl("DatePublished")).Text;

if (!string.IsNullOrEmpty(_title) && !string.IsNullOrEmpty(_author))
{
newarticle.Title = _title;
newarticle.Body = _body;
newarticle.Author = _author;
newarticle.DatePublished = DateTime.Parse(_datep);

ArticleManager AM = new ArticleManager();
AM.Add(newarticle);
GridView1.DataBind();

}
bhe certo, ma non con l'ObjectDataSource e hai dovuto utilizzare FindControl, tutto codice tedioso che utilizzando a dovere, ObjetDataSource e ListView avresti potuto evitare.

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.