Har följande:
<asp:ObjectDataSource
ID="ProductObjectDataSource"
runat="server"
SelectMethod="GetProductToThisCategoryId"
TypeName="Product"
onselecting="ProductObjectDataSource_Selecting">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="0" Name="catid" QueryStringField="c"
Type="Int32" />
<asp:QueryStringParameter Name="p" Type="Object" />
<asp:QueryStringParameter DefaultValue="0" Name="camid" QueryStringField="cam"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
if (Request.QueryString["s"] != null)
{
ProductObjectDataSource.SelectParameters.RemoveAt(2);
ProductObjectDataSource.SelectParameters.RemoveAt(0);
ProductObjectDataSource.SelectMethod = "GetProductBySearchText";
}
else if (Request.QueryString["c"] != null)
{
ProductObjectDataSource.SelectParameters.RemoveAt(2);
ProductObjectDataSource.SelectParameters.RemoveAt(1);
}
else if (Request.QueryString["cam"] != null)
{
ProductObjectDataSource.SelectParameters.RemoveAt(1);
ProductObjectDataSource.SelectParameters.RemoveAt(0);
int id = Convert.ToInt32(Request.QueryString["cam"]);
ProductObjectDataSource.SelectMethod = "GetProducById";
}
}
}
catch (Exception ex)
{
lblMsg.Text = ex.Message;
}
}
När jag sorterar i GridView när QueryStringen c inte är null så fungerar det, men när s eller cam innehåller något får jag fölajnde felmeddelande när jag försöker sortera:
ObjectDataSource 'ProductObjectDataSource' could not find a non-generic method 'GetProductToThisCategoryId' that has parameters: p.
Hur gör man så att den "kommer ihåg" vilken SelectMethod som är satt?
Annars så körs ju den som är hårdkodad in.
Hur löser jag detta???
Tacksam för all hjälp :stud