0

ページ上のいくつかのコントロールに基づいて動的にバインドしたいGridviewコントロールがあります。Selectメソッドを動的に設定し、パラメーターを渡そうとしている次のコードを除いて、すべてが正常に機能するようになりました。例外が発生し、パラメータを作成するための複数の方法を試しました。ここにコード:

string filterValue = FilterValue.Value; //FilterValue.Value is a HiddenField (Value is definitely populated)

MyObjDataSource.SelectParameters.Add("policynumber",TypeCode.String, filterValue);    
MyObjDataSource.SelectMethod = "GetPolicybyPolicyNumber";    
MyObjDataSource.Select();

私のSelectメソッドは次のようになります。

public IQueryable GetPolicybyPolicyNumber(Parameter policynumber, string sortExpr, int maximumRows, int startRowIndex)
    {
       //Debugging does not even reach here. I'm just returning null for demo purposes
       return null;
    }

私が取得し続ける例外は次のとおりです。


System.InvalidOperationException: System.Web.UI.WebControls.ObjectDataSourceView.ConvertType(Object value、Type type、Stringで、パラメーター'policynumber'の値を'System.String'から'System.Web.UI.WebControls.Parameter'に変換できませんparamName)...。

私もこれを試しましたが、同じ例外があります:

    Parameter param = new Parameter();
    param.Type = TypeCode.String;
    param.DefaultValue = FilterValue.Value;
    MyObjDataSource.SelectParameters.Add(param);

何かアドバイス?Tx

4

1 に答える 1

1

次のように、最初のparamデータ型を文字列に変更します

public IQueryable GetPolicybyPolicyNumber(string policynumber, string sortExpr, int maximumRows, int startRowIndex){...}

于 2012-05-30T11:19:52.817 に答える