ObjectDataSource TypeName with Constructor Parameters
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
21 hours 16 min ago
4 days 12 hours ago
1 week 2 days ago
1 week 6 days ago
2 weeks 1 day ago
2 weeks 5 days ago
2 weeks 6 days ago
2 weeks 6 days ago
3 weeks 4 days ago
4 weeks 1 day ago