C# 如何生成LinkButton';从回发时的另一个Link_命令事件创建的?

C# 如何生成LinkButton';从回发时的另一个Link_命令事件创建的?,c#,asp.net,linkbutton,C#,Asp.net,Linkbutton,好的,我有一个LinkButton的列表,点击后会在表中创建更多的LinkButton来进行回发。例如,每个用户都有一个活动或作业列表。因此,当用户被单击时,它会在表中创建他们的作业列表。然后,这些工作需要进行回发,以获得受人尊敬的内容 C#代码: protected void Page_Load(object sender, EventArgs e) { try { lstUsers = GetUsers(); AddLinkButton("all",

好的,我有一个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);
    }
受保护的无效页面加载(对象发送方,事件参数e){
试一试{
lstUsers=GetUsers();
AddLinkButton(“全部”、“全部”、表格列表、链接命令);
foreach(lstUsers中的var项){
AddLinkButton(item.UID.ToString(),item.Name,tabList,link_命令);
}
}捕获(例外情况除外){
}
}
已单击无效链接(对象发送者,CommandEventArgs e){
List jList=GetJobs(例如CommandArgument.ToString());
foreach(jList中的作业){
HtmlTableRow行=新的HtmlTableRow();
AddCell(job.JobID.ToString(),job.Name,行);
jobsTable.Rows.Add(行);
}
} 
void AddCell(字符串id、字符串文本、HtmlTableRow行){
HtmlTableCell=新的HtmlTableCell();
LinkButton链接=新的LinkButton();
link.ID=ID;
link.Text=文本;
link.Command+=newcommandeventhandler(job_命令);
link.CommandArgument=id;
链接。样式。添加(“颜色”、“黑色”);
单元格.控件.添加(链接);
行.单元格.添加(单元格);
}
void AddLinkButton(字符串id、字符串文本、HtmlGenericControl列表、CommandEventHandler){
LinkButton链接=新的LinkButton();
link.ID=ID;
link.Text=文本;
link.Command+=新的CommandEventHandler(handler);
link.CommandArgument=id;
HtmlGenericControl li=新的HtmlGenericControl(“li”);
li.Controls.Add(link);
list.Controls.Add(li);
}
在上面的页面加载事件中,我正在创建用户列表。当用户被点击时,它正在触发链接。单击链接,然后创建与该用户相关的行列表,以便创建活动或作业链接

我的问题是,我需要在Page_Load中确定在link_Clicked中创建的链接是否被实际单击。如果有人对我这样做的方式有更好的建议,我肯定会全神贯注。我对asp.net开发非常陌生,所以可能有更好的方法

明白了

string test1234 = Page.Request.Params.Get("__EVENTTARGET");
这将返回控件的ID,这正是我所需要的

我找到了一本教程

明白了

string test1234 = Page.Request.Params.Get("__EVENTTARGET");
这将返回控件的ID,这正是我所需要的


我找到了一本教程

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


这里给出了一个非常好的示例

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


这里给出了一个很好的例子

检查它是否在页面上回发。这不是你问题的答案,但似乎你没有回答。@Daniel是的,iPostback不会真正帮助我,因为我正在对同一页进行多次回发。我需要能够区分它是哪个回发。是的,问题是它总是会启动
Page\u Load
,这就是为什么一般情况下,您可能需要检查
IsPostBack
属性。如果您选中该选项,则当您单击的
链接
事件被触发时,
页面加载
代码将不会运行,这样您就可以控制了。否则,您可以使用类似于
Attributes
property的内容来标记每个案例中的链接按钮,然后再次检查此属性以了解单击了哪个链接。检查是否在页面上回发。这不是你问题的答案,但似乎你没有回答。@Daniel是的,iPostback不会真正帮助我,因为我正在对同一页进行多次回发。我需要能够区分它是哪个回发。是的,问题是它总是会启动
Page\u Load
,这就是为什么一般情况下,您可能需要检查
IsPostBack
属性。如果您选中该选项,则当您单击的
链接
事件被触发时,
页面加载
代码将不会运行,这样您就可以控制了。否则,您可以使用类似于
Attributes
property的内容来标记每个案例中的链接按钮,然后再次检查此属性以了解单击了哪个链接。