わかりましたので、クリックすると、ポストバックを行うためにテーブル内にさらに 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 は、そのユーザーに関連する行のリストを作成するため、アクティビティまたはジョブ リンクです。
私の問題は、link_Clicked で作成されたリンクの 1 つが実際にクリックされたかどうかを Page_Load で判断する必要があることです。私がこれを行っている方法について誰かがより良い提案をしているなら、私は間違いなくすべて耳を傾けています. 私はasp.net開発に非常に慣れていないので、これにはおそらくより良いルートがあります。