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 は、そのユーザーに関連する行のリストを作成するため、アクティビティまたはジョブ リンクです。

私の問題は、link_Clicked で作成されたリンクの 1 つが実際にクリックされたかどうかを Page_Load で判断する必要があることです。私がこれを行っている方法について誰かがより良い提案をしているなら、私は間違いなくすべて耳を傾けています. 私は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 に答える