1

好的,所以我有一个 LinkBut​​ton 的列表,点击后会在表格内创建更多 LinkBut​​ton 以进行回发。例如,每个用户都有一个活动或工作列表。因此,当单击该用户时,它会在表格中创建他们的工作列表。然后,这些工作需要进行回发以获取其受人尊敬的内容。

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 开发非常陌生,因此可能有更好的途径。

4

2 回答 2

1

您必须编写自己的自定义方法来跟踪事件

这里给出了一个很好的例子http://www.codeproject.com/Tips/82086/How-to-know-which-control-has-raised-a-postback

于 2012-07-10T19:18:42.110 回答
0

知道了!

string test1234 = Page.Request.Params.Get("__EVENTTARGET");

这会将控件的 ID 传回给我,这正是我所需要的。

我在这里找到了一个教程。

于 2012-07-10T19:08:21.387 回答