I have a dynamically generated radio button with anonymous delegate declared as
in
private void SetFieldDependency(DocumentSimpleFieldDetailDto obj, Table table, RadioButton ctrlExtended, Panel pnl)
{
if (this.ListOfDependentFields != null)
{
var lstRelatedField = this.TemplateCompiledDto.LstSimpleFields.Where(a => a.FkDocumentTemplateSectionId == obj.FkDocumentTemplateSectionId
&& !a.IsGridField && a.FieldGroup == obj.FieldGroup);
var objDependencyList = this.ListOfDependentFields.FindAll(h => lstRelatedField.Any(k => h.ParentFieldId == k.TemplateSimpleFieldDetailId));
if (objDependencyList != null && objDependencyList.Count > 0)
{
ctrlExtended.AutoPostBack = true;
ctrlExtended.CheckedChanged += (sender, e) =>
{
foreach (var fieldDependency in objDependencyList.Where(h => h.ChildFieldId != null))
{
var tr = table.FindControl(fieldDependency.ChildFieldId.ToString()) as TableRow;
if (tr != null)
{
if (fieldDependency.ParentFieldId == obj.TemplateSimpleFieldDetailId)
{
tr.Visible = true;
}
else
{
tr.Visible = !tr.Visible;
}
}
}
SetGridFieldDependency(obj, pnl, objDependencyList);
};
}
}
}
Now on some button submit event I have to call this radiobutton
CheckChanged
Event.If it is like ctrlExtended_Changed(object sender, EventArgs e)
I can easily call but how can i call binded anonymous delegate method?
Also I am using Asp.net
if some other event need to triger this event CheckedChanged
then you should definetly call CheckedChanged
event. if you just want the logic in the anonymous delegate method to be called i suggest you place that logic in a method and call that method
edit
ctrlExtended.CheckedChanged += (sender, e) =>{
// My logic
SharedLogic(sender, e);
}
.
.
.
public void SharedLogic(object sender, EventHandler e)
{
// the shared logic
}
in that way when the event CheckedChanged
fired your logic will still be called upon, but also the method SharedLogic will be called, and you can call that method from elsewhere
There are different way of using it..
public class NumberEventArgs : EventArgs
{
private int _number;
public NumberEventArgs(int num)
{
this._number = num;
}
public int getNumber
{
get
{
return _reached;
}
}
// eventhandler Method
private void ShowMessage(object sender, NumberEventArgs e)
{
MessageBox.Show("Hello user your ticket no is:" + e.getNumber().ToString());
}
myRadioButton.CheckedChanged += (sender, e) =>{ ShowMessage(); }
myRadioButton.CheckedChanged += (sender, e) => MessageBox.Show(string.Format("sender is: {0} and eventargumnet is:{1}",sender.getType(),e.toString()};
myRadioButton.CheckedChanged += (sender, e) => string.Format("string = {0} and {1}", sender.getType() , e);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.