Hi,
You may use delegate.
Example code:
In you client code:
<%@ Register Assembly="AjaxControlToolkit"
Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ Register Src="~/UserControls/City.ascx"
TagName="ucSearchCityAddr" TagPrefix="uc1" %>
<cc1:ModalPopupExtender runat="server" ID="mpeSearchCityAddr" TargetControlID="hfSearchCityAddr"
PopupControlID="panelSearchCityAddr" BackgroundCssClass="modalBackground" DropShadow="true"
Y="40">
</cc1:ModalPopupExtender>
<asp:Button SkinID="skinButtonM" runat="server" ID="hfSearchCityAddr" Style="display: none" />
<asp:Panel runat="server" Width="80%" ID="panelSearchCityAddr" Style="display: none;">
<uc1:ucSearchCityAddr runat="server" ID="ucSearchCityAddr" />
</asp:Panel>
protected void Page_Load(object sender, EventArgs e)
{
ucSearchCityAddr.SendValue += delegate(string cityName, string cityCode)
{
this.txtCityCode.Text = cityCode;
this.txtCityName.Text = cityName
};
}
public void CloseModalCityAddr()
{
mpeSearchCityAddr.Hide();
}
public delegate void SendCityAddr(string cityName, string cityCode);
public event SendCityAddr SendValue;
protected void lnkCityName_Click(object sender, EventArgs e)
{
LinkButton lnkCityName = (LinkButton)sender;
GridViewRow row = (GridViewRow)lnkCityName.NamingContainer;
if (SendValue != null)
{
SendValue(((LinkButton)row.FindControl("lnkCityName")).Text,
((Label)row.FindControl("lblCityCode")).Text);
Page.GetType().InvokeMember("CloseModalCityAddr",System.Reflection.BindingFlags.InvokeMethod, null, Page, null);
}
}
Hope this could help...
Regards,