2012-12-19 45 views
5

Tôi có một ObjectDataSource trong đó tôi đã cố gắng để vượt qua một số tham số.lý do tại sao ObjectDataSource không gửi giá trị thông số chính xác?

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

và phương pháp của tôi là trong App_Code/Dal/CountriesDB.CS

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

khi tôi sửa lỗi nó, trong GetAllCountries Phương pháp PageSize = -1; OrderBy = "", startIndex = 0 được thông qua. ..chuyện gì đang xảy ra ở đây??

thnx trước ...

Trả lời

0

Bạn có thể thử theo cách đó:

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

Tôi thường đăng ký vào ObjectDataSource's Selecting event, nơi tôi có thể sửa đổi các InputParmeters bộ sưu tập trong 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 

Bên cạnh đó, các giá trị tham số không cần phải là chuỗi. Chúng phải khớp với các kiểu tham số của phương thức chọn.

Phương pháp chọn phải được xác định một trong hai trong mã (cũng giống như bạn đã làm trong câu hỏi của bạn):

GridDataSource.SelectMethod = "GetAllCountries"; // code 

... hoặc trong đánh dấu:

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

Bắt một lỗi: Select hoạt động không được hỗ trợ bởi ObjectDataSource 'GridDataSource' trừ khi SelectMethod được chỉ định. –

+0

@TamalKantiDey Bạn cần xác định nó. Đã chỉnh sửa bài đăng của tôi. –

+0

yea ... tryd it .... không hoạt động .... –

4

Xử lý sự kiện Selecting của GridDataSource và nhập thông số của bạn ở đó.

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

Tôi gặp lỗi này: Thao tác chọn không được hỗ trợ bởi ObjectDataSource 'GridDataSource' trừ khi SelectMethod được chỉ định. –

+0

Xem bài đăng này có giúp http://www.eranachum.com/PermaLink,guid,089badbf-c01c-4363-a236-617ccf85ce3b.aspx – keyboardP

Các vấn đề liên quan