5

いくつかのパラメーターを渡そうとしていた ObjectDataSource があります。

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

私の方法は App_Code/DAL/CountriesDB.CS にあります

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

私がそれをデバッグしたとき、GetAllCountries メソッドで PageSize=-1;OrderBy="",StartIndex=0 が渡されました...ここで何が起こっているのですか??

thnx事前に...

4

3 に答える 3

4

Selectingのイベントを処理し、GridDataSourceそこにパラメータを入力します。

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());         
}
于 2012-12-19T15:02:54.840 に答える
0

その方法を試すことができます:

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);
于 2012-12-19T14:58:01.440 に答える
0

私は通常、 ObjectDataSourceMethodEventArgsのコレクションを変更できるObjectDataSourceSelectingeventにサブスクライブします。InputParmeterse

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

また、パラメータ値は文字列である必要はありません。これらは、select メソッドのパラメーターの型と一致する必要があります。

選択方法は、コードで指定する必要があります(質問で行ったように):

GridDataSource.SelectMethod = "GetAllCountries"; // code

... またはマークアップで:

<asp:ObjectDataSource ... SelectMethod="GetAllCountries" /> // markup
于 2012-12-19T15:00:30.420 に答える