How do i write a method for this code
Dear friends how do i write a method for the code marked in red as it is repeating. I want to write a method and call it in place of the code given in red.. Can u`ll plzzz help
===============================
string menuType;
GblDefinition obj = new GblDefinition();
protected void Page_Load(object sender, EventArgs e)
{
menuType = Request.QueryString["type"];
if (!Page.IsPostBack)
{
if (menuType == "city")
{
lbltitle.Text = "City Details";
BoundField field = new BoundField();
field.DataField = "cityid";
field.HeaderText = "City ID";
DataControlField col = field;
GVDetails.Columns.Add(col);
field = new BoundField();
field.DataField = "cityname";
field.HeaderText = "City";
col = field;
GVDetails.Columns.Add(col);
DataSet ds1 = obj.LoadDataSet("Select * from city_master");
GVDetails.DataSource = ds1.Tables[0];
GVDetails.DataBind();
}
else if (menuType == "state")
{
lbltitle.Text = "State Details";
BoundField field = new BoundField();
field.DataField = "stateid";
field.HeaderText = "State ID";
DataControlField col = field;
GVDetails.Columns.Add(col);
field = new BoundField();
field.DataField = "statename";
field.HeaderText = "State";
col = field;
GVDetails.Columns.Add(col);
DataSet ds2 = obj.LoadDataSet("select * from state_master");
GVDetails.DataSource=ds2.Tables[0];
GVDetails.DataBind();
}
else if(menuType=="country")
{
lbltitle.Text = "Country Details";
BoundField field = new BoundField();
field.HeaderText = "Country ID";
field.DataField = "countryid";
DataControlField col = field;
GVDetails.Columns.Add(col);
field = new BoundField();
field.DataField = "countryname";
field.HeaderText = "Country";
col = field;
GVDetails.Columns.Add(col);
DataSet ds3 = obj.LoadDataSet("select * from country_master");
GVDetails.DataSource=ds3.Tables[0];
GVDetails.DataBind();
}
else if(menuType=="category")
{
lbltitle.Text = "Category Details";
BoundField field = new BoundField();
field.HeaderText = "Category ID";
field.DataField = "categoryid";
DataControlField col = field;
GVDetails.Columns.Add(col);
field = new BoundField();
field.DataField = "categoryname";
field.HeaderText = "Category";
col = field;
GVDetails.Columns.Add(col);
DataSet ds4 = obj.LoadDataSet("select * from category_master");
GVDetails.DataSource=ds4.Tables[0];
GVDetails.DataBind();
}
else if(menuType=="designation")
{
lbltitle.Text = "Desination Details";
BoundField field = new BoundField();
field.HeaderText = "Designation ID";
field.DataField = "designationid";
DataControlField col = field;
GVDetails.Columns.Add(col);
field = new BoundField();
field.HeaderText = "Designation";
field.DataField = "designation";
col = field;
GVDetails.Columns.Add(col);
DataSet ds5 = obj.LoadDataSet("select * from designation_master");
GVDetails.DataSource=ds5.Tables[0];
GVDetails.DataBind();
}
}
=================================
Benjamin KemnerPosted Jul 25, 2011, 4:03 AM
Tuples are supported in .NET 4.0
// member of class
private List
private void constructorOrLoadPage()
{
types = new List
// init your cases
types.Add(Tuple.Create("city", "City Details", "cityid", "City ID", "cityname", "City", "Select * from city_master"));
types.Add(Tuple.Create("state", "State Details", "stateid", "State ID", "statename", "State", "select * from state_master"));
types.Add(Tuple.Create("country", "Country Details", "countryid", "Country ID", "countryname", "Country", "select * from country_master"));
types.Add(Tuple.Create("category", "Category Details", "categoryid", "Category ID", "categoryname", "Category", "select * from category_master"));
types.Add(Tuple.Create("designation", "Desination Details", "designationid", "Designation ID", "designation", "Designation", "select * from designation_master"));
}
public void CheckMethod(string menuType)
{
foreach(Tuple
if (type.Item1 == menuType)
{
lbltitle.Text = type.Item2;
BoundField field = new BoundField();
field.HeaderText = type.Item4;
field.DataField = type.Item3;
DataControlField col = field;
GVDetails.Columns.Add(col);
field = new BoundField();
field.DataField = type.Item6;
field.HeaderText = type.Item5;
col = field;
GVDetails.Columns.Add(col);
DataSet ds4 = obj.LoadDataSet(type.Item7);
GVDetails.DataSource = ds4.Tables[0];
GVDetails.DataBind();
return;
}
}
}
Nethra R SPosted Jul 25, 2011, 4:08 AM
I am using VS 2008.. ie .net 3.5. Same way how to update delete and insert new row in this gridview.. plzz help me friends
Zoran HorvatPosted Jul 25, 2011, 3:58 AM
private void BindField(string title, string dataField, headerText, string loadQuery)
{
if (!string.IsNullOrEmpty(title))
lbltitle.Text = title;
BoundField field = new BoundField();
field.DataField = dataField;
field.HeaderText = headerText;
DataControlField col = field;
GVDetails.Columns.Add(col);
if (!string.IsNullOrEmpty(loadQuery))
{
DataSet ds1 = obj.LoadDataSet(loadQuery);
GVDetails.DataSource = ds1.Tables[0];
GVDetails.DataBind();
}
}
In that case, main code (function mostly in red) looks like this:
protected void Page_Load(object sender, EventArgs e)
{
menuType = Request.QueryString["type"];
if (!Page.IsPostBack)
{
switch (menyType)
{
case "city":
BindField("City Details", "cityid", "City ID", null);
BindField(null, "cityname", "City", "Select * from city_master");
break;
case "state":
BindField("State Details", "stateid", "State ID", null);
BindField(null, "statename", "State", "Select * from state_master");
break;
case "country":
BindField("Country Details", "countryid", "Country ID", null);
BindField(null, "countryname", "Country", "Select * from country_master");
break;
case "category":
BindField("Category Details", "categoryid", "Category ID", null);
BindField(null, "categoryname", "Category", "Select * from category_master");
break;
case "designation":
BindField("Designation Details", "designationid", "Designation ID", null);
BindField(null, "designation", "Designation", "Select * from designation_master");
break;
}
}
}
Don't mind the switch statement receiving strings. Many people fear it's not efficient, but it is, because strings in the case clauses are pre-compiled and stored in the memory section containing constant strings, so comparing against them goes much quicker than multiple if-else if statements.
Zoran
Suthish NairPosted Jul 25, 2011, 3:50 AM