2012-12-19 13 views
5

Ich habe eine ObjectDataSource, in der ich einige Parameter übergeben wollte.Warum ObjectDataSource keinen korrekten Parameterwert sendet?

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

und meine Methode ist in App_Code/DAL/CountriesDB.CS

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

, wenn ich es debuggt, in GetAllCountries Methode Pagesize = -1; OrderBy = "", Startindex = 0 übergeben wird. ..Was geht hier vor sich??

thnx im Voraus ...

Antwort

0

Sie auf diese Weise versuchen:

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

ich in der Regel auf die ObjectDataSource's Selecting event abonnieren, wo ich die InputParmeters Sammlung in ObjectDataSourceMethodEventArgs e ändern können:

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 

Außerdem müssen die Parameterwerte keine Zeichenfolgen sein. Sie sollten den Typen der select-Methode entsprechen.

muss die Select-Methode angegeben in Code entweder (wie Sie in Ihrer Frage tun):

GridDataSource.SelectMethod = "GetAllCountries"; // code 

... oder im Markup:

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

erhalte eine Fehlermeldung: Die Select-Operation wird nicht von Object ‚GridDataSource‘ unterstützt, wenn die Select angegeben ist. –

+0

@TamalKantiDey Sie müssen es so spezifizieren. Hat meinen Beitrag bearbeitet. –

+0

ja ... habe es versucht .... nicht funktioniert .... –

4

den Selecting Fall Griff GridDataSource und geben Sie dort Ihre Parameter ein.

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

Ich bekomme diesen Fehler: Die Select-Operation wird von ObjectDataSource 'GridDataSource' nicht unterstützt, es sei denn, SelectMethod ist angegeben. –

+0

Sehen Sie, ob dieser Beitrag http://www.eranachum.com/PermaLink,guid089badbf-c01c-4363-a236-617ccf85ce3b.aspx hilft – keyboardP

Verwandte Themen