ОК, я решил свою проблему здесь, и это оказалось проблемой новичка, с которой я сталкивался раньше! Я полагал, что стоит опубликовать резолюцию здесь ради чьей-либо выгоды ...
КОГДА ВЫ СОЗДАЕТЕ ДИНАМИЧЕСКОЕ УПРАВЛЕНИЕ, ВЫ ДОЛЖНЫ СОХРАНИТЬ ИХ НА ПОСТБЕКЕ
Это всегда казалось мне нелогичным, но у меня была директива if (! IsPostBack) в моем коде создания элемента управления, что означало, что любые решения, которые я пробовал, не запускались. Это потому, что элемент управления больше не существует, потому что я не воссоздаю его при обратной передаче.
В ответ на мой собственный вопрос и принимая во внимание пункты, упомянутые здесь, следующий код работает ...
private void DrawHelpGuide(int ID, int Type, string Name, string Description, string Version, string URL)
{
var lnkbtnTitle = new LinkButton();
lnkbtnTitle.CssClass = "HelpGuideTitle";
lnkbtnTitle.ToolTip = Description;
lnkbtnTitle.Text = Name + ' ' + Version;
lnkbtnTitle.CommandArgument = ID.ToString();
lnkbtnTitle.Click += new EventHandler(lnkbtnTitle_Click);
pnlHelpGuidesView.Controls.Add(lnkbtnTitle);
}
void lnkbtnTitle_Click(object sender, EventArgs e)
{
var ClickedButton = (LinkButton)sender;
var id = int.Parse(ClickedButton.CommandArgument);
}
Теперь я также понимаю, что различные версии, которые я написал ранее, хотя и были более сложными, также работали бы! В моем конкретном случае метод CommandArgument вполне адекватен, но я очень рад, что теперь я «понимаю» концепцию делегатов и событий намного больше, чем я делал ранее:)