簡體   English   中英

如何使用模態對話框彈出窗口和自定義控件處理來自動態生成的按鈕的事件?

[英]How do I handle an event from a dynamically generated button using a modal dialog popup and custom control?

我有一個具有搜索功能的自定義控件。 當用戶單擊搜索時,代碼將基於搜索結果生成按鈕列表。

每個按鈕的CommandArgument屬性包含搜索結果的ID。 當用戶單擊按鈕時,我要處理事件,獲取CommandArgument並使用該值將事件引發回主頁。

問題在於按鈕沒有引發事件。 我認為這是因為它在回發或其他任何操作上都會丟失。 我是否應該考慮使用其他列出值的方法來完成這項工作?

解決這個問題的最簡單方法是什么? 這是我所擁有的:

private void Search()
{
        foreach (var c in companies)
        {
            TableRow companyRow = new TableRow();
            TableCell nameRowCell = new TableCell();
            TableCell regRowCell = new TableCell();

            Button selectButton = new Button();
            selectButton.CommandArgument = c.Id.ToString();
            selectButton.Text = c.Name;
            selectButton.Click += new EventHandler(selectButton_Click);
            selectButton.CausesValidation = false;

            nameRowCell.Controls.Add(selectButton);
            companyRow.Cells.Add(nameRowCell);
            tblCompanies.Rows.Add(companyRow);

        }
}

    void selectButton_Click(object sender, EventArgs e) // <- Not getting handled
    {
        Button btn = (Button)sender;
        string id = btn.CommandArgument;
        if (id != "" && CompanyFound != null)
            CompanyFound(new Company() { Id = int.Parse(id) });
    }

我一直在處理您的代碼,它的確在屏幕上放置了一個按鈕。 瀏覽器源代碼以輸入類型Submit Tag的形式顯示按鈕。 要測試它實際上是在觸發,請在您的頁面某處添加一個div,也許將其ID設置為testDiv。 然后,在您的selectButton_Click事件處理程序中,添加一行到以下效果:testDiv.innerHtml =“在此處制造”。

如果div更改,則觸發您的按鈕。

另外,可以在selectButton_Click的空白之前添加受保護的,公共的或其他內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM