Asp.Net: Using a Usercontrol property with ObjectDataSource selectparameter

I was using a ObjectDataSource to generate a listing including paging. The ObjectDataSource used the GetItems method of my usercontrol. See this previous post. This construction works great. But now I needed to do some custom filtering in the GetItems method based on a property of the usercontrol. At first I tried to use the property directly in the GetItems method, this didn’t work the property the property returned NULL. After a small search on the internet I found the following blog post.

The solution is to dynamically add a Selectparameter that will be passed to the GetItems method. You can dynamically add Selectparameters at the OnSelecting event of the asp:ObjectDataSource,  like this:






And in you codebehind:


protected void odsListing_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
 e.InputParameters["ListingDataSourceId"] = <em>YourUsercontrolProperty</em>;
}


Now you can use YourUsercontrolProperty in the Select method of your ObjectDataSource.


public Sitecore.Collections.ItemList getItems(string <strong>myProperty</strong>)
{
  // Your selection logica
  // You can use the string <strong>myProperty</strong> for filtering
}


Hope it helps.

Leave a Reply

Your email address will not be published.