C# 为什么ObjectDataSource不发送正确的参数值?
我有一个ObjectDataSource,我试图在其中传递一些参数C# 为什么ObjectDataSource不发送正确的参数值?,c#,asp.net,C#,Asp.net,我有一个ObjectDataSource,我试图在其中传递一些参数 GridDataSource.SelectMethod = "GetAllCountries"; GridDataSource.SelectParameters.Add("PageSize", pageSize.ToString()); GridDataSource.SelectParameters.Add("OrderBy", orderBy); GridDataSource.SelectParameters.Add("Sta
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)
{
..........
}
public List GetAllCountries(int PageSize、string OrderBy、int StartIndex)
{
..........
}
当我调试它时,在GetAllCountries方法中PageSize=-1;OrderBy=“”,StartIndex=0已传递…这里发生了什么
thnx提前…您可以这样尝试:
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);
我通常订阅,在那里我可以在以下位置修改
InputParmeters
集合:
此外,参数值不需要是字符串。它们应该与select方法的参数类型相匹配
必须在代码中指定select方法(就像您在问题中所做的那样):
。。。或在标记中:
<asp:ObjectDataSource ... SelectMethod="GetAllCountries" /> // markup
//标记
处理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());
}
我收到以下错误:除非指定了SelectMethod,否则ObjectDataSource“GridDataSource”不支持选择操作。请查看此帖子是否有助于获取错误:除非指定了SelectMethod,否则ObjectDataSource“GridDataSource”不支持选择操作。@Tamalkandey您需要指定它。编辑了我的帖子。如果你能用你尝试过的最新简短但完整的版本()更新这个问题,那会有所帮助。尤其是事件处理程序应该是可见的。
<asp:ObjectDataSource ... SelectMethod="GetAllCountries" /> // markup
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());
}