Итак, у меня есть список LinkButton, которые при нажатии создают больше LinkButton внутри таблицы для выполнения обратной передачи. Например, у каждого пользователя есть список действий или заданий. Поэтому, когда этот пользователь нажимается, он создает список своих заданий в таблице. Затем эти задания должны выполнять обратную передачу, чтобы получить их уважаемый контент.
Код C#:
protected void Page_Load(object sender, EventArgs e) {
try {
lstUsers = GetUsers();
AddLinkButton("all", "All", tabList, link_Command);
foreach (var item in lstUsers) {
AddLinkButton(item.UID.ToString(), item.Name, tabList, link_Command);
}
} catch (Exception ex) {
}
}
void link_Clicked(object sender, CommandEventArgs e) {
List<Job> jList = GetJobs(e.CommandArgument.ToString());
foreach (Job job in jList) {
HtmlTableRow row = new HtmlTableRow();
AddCell(job.JobID.ToString(), job.Name, row);
jobsTable.Rows.Add(row);
}
}
void AddCell(string id, string text, HtmlTableRow row) {
HtmlTableCell cell = new HtmlTableCell();
LinkButton link = new LinkButton();
link.ID = id;
link.Text = text;
link.Command += new CommandEventHandler(job_Command);
link.CommandArgument = id;
link.Style.Add("color", "black");
cell.Controls.Add(link);
row.Cells.Add(cell);
}
void AddLinkButton(string id, string text, HtmlGenericControl list, CommandEventHandler handler) {
LinkButton link = new LinkButton();
link.ID = id;
link.Text = text;
link.Command += new CommandEventHandler(handler);
link.CommandArgument = id;
HtmlGenericControl li = new HtmlGenericControl("li");
li.Controls.Add(link);
list.Controls.Add(li);
}
Выше в событии Page_Load я создаю список пользователей. Когда пользователь нажимает, он запускает link_Clicked. link_Clicked затем создает список строк, относящихся к этому Пользователю, поэтому действия или ссылки на работу.
Моя проблема в том, что мне нужно определить в Page_Load, действительно ли была нажата одна из ссылок, созданных в link_Clicked. Если у кого-то есть лучшие предложения о том, как я это делаю, я определенно прислушаюсь. Я очень новичок в разработке asp.net, поэтому, вероятно, есть лучший путь для этого.
Page_Load
, поэтому, вообще, вы можете проверить свойствоIsPostBack
см. информацию о жизненном цикле. Если вы отметите это, ваш кодPage_Load
не будет выполняться при запуске вашего событияlink_Clicked
, и таким образом вы сможете взять на себя управление. В противном случае вы можете использовать что-то вроде свойстваAttributes
, чтобы пометить кнопки ссылок в каждом случае, а затем снова проверить это свойство, чтобы узнать, какая ссылка была нажата. - person danielQ   schedule 10.07.2012