Reply to comment
ObjectDataSource TypeName with Constructor Parameters
Submitted by Ben Hodson on Tue, 08/26/2008 - 17:12
Say you have a class for something like a Data Access Layer but the default constructor of the class has a required parameter. For instance, something like this:
public class MyDataClass
{
public MyDataClass(string sConnectionString)
{
// default constructor contains a parameter
// so we need to handle this for the ObjectDataSource.
}
public int SelectCount()
{
// get count for pagination
return 1;
}
public DataTable SelectAll(string sortType, int startRowIndex, int maximumRows)
{
// get data from data source and return as DataTable.
return new DataTable();
}}
By default, the ObjectDataSource requires a parameterless default constructor on the TypeName class to instantiate. To solve this problem, you need to implement the OnObjectCreating event for the ObjectDataSource. Here is an example of how you might set up your ObjectDataSource in the HTML source view:
<asp:ObjectDataSource ID="ods1" runat="server"
EnablePaging="true"
OnObjectCreating="ods1_ObjectCreating"
SelectCountMethod="SelectCount"
SelectMethod="SelectAll"
TypeName="MyDataClass"></asp:ObjectDataSource>
Then implement the OnObjectCreating event to set the TypeName object to an instance using the constructor:
protected void ods1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
string sConnectionString = "Put a connection string here";
MyDataClass myDataClass = new MyDataClass(sConnectionString);
// set ods object
e.ObjectInstance = myDataClass;}

Recent comments
14 hours 15 min ago
1 day 14 hours ago
3 days 15 hours ago
4 days 4 hours ago
4 days 15 hours ago
4 days 21 hours ago
5 days 59 min ago
1 week 21 hours ago
1 week 1 day ago
1 week 4 days ago