2012-12-19 16 views
5

Ho una ObjectDataSource in cui stavo cercando di passare alcuni parametri.perché ObjectDataSource non invia il valore di parametro corretto?

GridDataSource.SelectMethod = "GetAllCountries"; 
GridDataSource.SelectParameters.Add("PageSize", pageSize.ToString()); 
GridDataSource.SelectParameters.Add("OrderBy", orderBy); 
GridDataSource.SelectParameters.Add("StartIndex", startIndex.ToString()); 

e il mio metodo è in App_Code/DAL/CountriesDB.CS

public List<Countries> GetAllCountries(int PageSize,string OrderBy,int StartIndex) 
{ 
.......... 
} 

quando il debug esso, in GetAllCountries Metodo PageSize = -1; OrderBy = "", StartIndex = 0 viene passato. ..Che cosa sta succedendo qui??

thnx in anticipo ...

risposta

0

Si può provare in questo modo:

GridDataSource.SelectMethod = "GetAllCountries"; 
Parameter p1 = new Parameter("PageSize",TypeCode.Int32); 
Parameter p2 = new Parameter("OrderBy",TypeCode.String); 
Parameter p3 = new Parameter("StartIndex",TypeCode.Int32); 
GridDataSource.SelectParameters.Add(p1); 
GridDataSource.SelectParameters.Add(p2); 
GridDataSource.SelectParameters.Add(p3); 
0

Io di solito iscriversi al ObjectDataSource's Selecting event, dove posso modificare l'insieme InputParmeters in ObjectDataSourceMethodEventArgs e:

e.InputParameters["PageSize"] = pageSize; // pageSize is an int in your select method 
e.InputParameters["OrderBy"] = orderBy; 
e.InputParameters["StartIndex"] = startIndex; // startindex is an int too 

Inoltre, i valori dei parametri non devono essere stringhe. Dovrebbero corrispondere ai tipi di parametri del metodo select.

Il metodo di selezione deve essere specificato nel codice (così come avete fatto nella tua domanda):

GridDataSource.SelectMethod = "GetAllCountries"; // code 

... o nella marcatura:

<asp:ObjectDataSource ... SelectMethod="GetAllCountries" /> // markup 
+0

ottenendo un errore: l'operazione di selezione non è supportato da ObjectDataSource 'GridDataSource' a meno che non sia specificato il SelectMethod. –

+0

@TamalKantiDey È necessario specificarlo. Modificato il mio post. –

+0

sì ... non funziona .... –

4

gestire l'evento Selecting di GridDataSource e inserisci qui i tuoi parametri.

protected void GridDataSource_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) 
{  
    GridDataSource.SelectMethod = "GetAllCountries";    
    e.InputParameters.Clear(); 
    e.InputParameters.Add("PageSize", pageSize.ToString()); 
    e.InputParameters.Add("OrderBy", orderBy); 
    e.InputParameters.Add("StartIndex", startIndex.ToString());   
} 
+0

Viene visualizzato questo errore: L'operazione Select non è supportata da ObjectDataSource 'GridDataSource', a meno che non sia specificato SelectMethod. –

+0

Verifica se questo post aiuta http://www.eranachum.com/PermaLink,guid.089badbf-c01c-4363-a236-617ccf85ce3b.aspx – keyboardP

Problemi correlati