![]() |
Web Development »
ASP.NET Controls »
General
Beginner
License: The Code Project Open License (CPOL)
How to Pass Value from Ajax Enabled Base User Control to Client User Control and to the Parent ASPX PageBy T.AshrafHow to pass value from Ajax Enabled Base User Control to Client User Control and to the Parent aspx page |
C# (C# 2.0), Windows (WinXP, Vista), .NET CF, Office, ASP.NET, Ajax, Design
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
What this project is all about is building an Ajax enabled dialog type Base User Control. When the button is clicked, it pops up a GridView Popup User Control, from where the user selects some values and the selected values are sent back to the Client page and then to the Parent ASPX page. Data can be sent in the form of DataSet to the client page and from client page to the Parent page.
Please read how to pass a value between user controls:

//Base Control Codes
//Define the Delegate and Event
public delegate void Ep_UserControlCommandEventHandler
(object sender, AB_UserControlCommandEventArgs e);
public event AB_UserControlCommandEventHandler AjaxGridSelectedData;
//User can set the DataSet from the Client User Control user can
//pass a data for the GridView of the Base control from Client User control;
//Define the DataSet property on base control
private DataSet data;
public DataSet Parent_DataSet
{
set
{
data = value; ;
}
}
//When user clicks on the show dialog button. This is base control event
protected void Show_Click(object sender, EventArgs e)
{
GridView1.DataSource = data;
GridView1.DataBind();
BPanel.Update();
mdlPopup.Show();
}
//Define the virtual method this method needs to implement
//in the client page to access the return data set value
protected virtual void OnAB_AjaxGridSelectedData(AB_UserControlCommandEventArgs e)
{
if (AjaxGridSelectedData != null) AjaxGridSelectedData(this, e);
}
//Pass the Selected values to the Client Page by Base Command event
AB_UserControlCommandEventArgs(N_data));
protected void btnadd_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Id", typeof(string)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Is_Selected", typeof(Boolean)));
ArrayList Id_List = (ArrayList)Session["CHECKED_ITEMS"];
foreach (GridViewRow Ro in GridView1.Rows)
{
bool isChecked = ((CheckBox)Ro.FindControl("Is_Selected")).Checked;
if (isChecked)
{
if (Id_List != null)
{
Id_List.Add(Ro.Cells[0].Text);
}
else
{
DataRow dra = dt.NewRow();
dra["Id"] = Ro.Cells[0].Text;
dra["Name"] = Ro.Cells[1].Text;
dra["Is_Selected"] = true;
dt.Rows.Add(dra);
}
}
}
if(Id_List!=null)
{
string Id_s ="'";
for (int i = 0; i < Id_List.Count; i++)
{
Id_s += Id_List[i].ToString() +"','";
}
DataTable MyTable = data.Tables[0];
DataRow[] test;
string Slect = "Id in (" + Id_s + ")";
Slect=Slect.Replace(",')", ")");
test = MyTable.Select(Slect);
foreach (DataRow rw in test)
{
DataRow dr = dt.NewRow();
dr["Id"]=rw["Id"];
dr["Name"]=rw["Name"];
dr["Is_Selected"]=true;
dt.Rows.Add(dr);
}
}
DataSet N_data = new DataSet();
N_data.Tables.Add(dt);
OnEp_AjaxGridSelectedData(new AB_UserControlCommandEventArgs(N_data));
mdlPopup.Hide();
}
//Client User control page implements the base control event
protected void Page_Load(object sender, EventArgs e)
{
AjaxGridViewBaseControl1.Parent_DataSet = Main_GridData();
AjaxGridViewBaseControl1.AjaxGridSelectedData +=
new AB_UserControlCommandEventHandler(OnAjaxGridSelectedData);
}
//Get value from Base
private void OnAjaxGridSelectedData(object sender, AB_UserControlCommandEventArgs e)
{
//The selected values can be displayed in client control
//and even return back to parent page
GridView1.DataSource = e.EpDataSet;
GridView1.DataBind();
}
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 13 Mar 2008 Editor: Deeksha Shenoy |
Copyright 2008 by T.Ashraf Everything else Copyright © CodeProject, 1999-2009 Web22 | Advertise on the Code Project |