2012-12-19 17 views
5

Mam ObjectDataSource, w którym próbowałem przekazać niektóre parametry.dlaczego ObjectDataSource nie wysyła prawidłowej wartości parametru?

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

i moje metoda jest App_Code/DAL/CountriesDB.CS

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

kiedy debugowany go w Metodzie GetAllCountries pageSize = 1; OrderBy = "" STARTINDEX = 0 podjęcia. ..co tu się dzieje??

thnx z góry ...

Odpowiedz

0

można spróbować w ten sposób:

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

zazwyczaj subskrybować ObjectDataSource's Selecting event, gdzie można zmodyfikować kolekcję InputParmeters w 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 

Poza tym wartości parametrów nie muszą być ciągami. Powinny pasować do typów parametrów wybranej metody.

metody Select muszą być określone zarówno w kodzie (tak samo, jak w pytaniu):

GridDataSource.SelectMethod = "GetAllCountries"; // code 

... lub w znacznikach:

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

otrzymuję błąd: Select operacja nie jest obsługiwana przez ObjectDataSource 'GridDataSource', że nie określono SelectMethod. –

+0

@TamalKantiDey Potrzebujesz tak określić. Edytowałem mój wpis. –

+0

tak ... spróbuj .... nie działa .... –

4

obsłużyć zdarzenia Selecting z GridDataSource i wprowadź tam swoje parametry.

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

Otrzymuję ten błąd: Operacja Select nie jest obsługiwana przez ObjectDataSource "GridDataSource", chyba że określono metodę SelectMethod. –

+0

Sprawdź, czy ten wpis ułatwia http://www.eranachum.com/PermaLink,guid,089badbf-c01c-4363-a236-617ccf85ce3b.aspx – keyboardP

Powiązane problemy