Несколько AJAX asyncfileupload, созданный из кода C # позади - PullRequest
3 голосов
/ 10 августа 2011

У меня есть несколько элементов управления asyncfileupload, созданных из кода за C #, и я не могу понять, как ссылаться на правильный экземпляр элемента управления из раздела UploadedComplete моего кода или любого другого экземпляра в этом отношении.

Я использую 20 асинхронных загрузок файлов на одной странице, все в разных модальных всплывающих элементах управления, поэтому при нажатии кнопки я создаю все свои элементы управления из кода за каждым огнем. Поэтому использование только c # абсолютно необходимо.

Каждый экземпляр создается следующим образом:

AsyncFileUpload afuUploadEvents     = new AsyncFileUpload();
afuUploadEvents.ID                  = "AsyncFileUploadId";
afuUploadEvents.UploadedComplete   += new EventHandler<AsyncFileUploadEventArgs>this.afuUpload_UploadedComplete);
// other settings... blah blah blah... 

Вот попытки найти элемент управления:

protected void afuUpload_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
{
    // get the file upload control - doesn't work
    AsyncFileUpload oFileUpload = (AsyncFileUpload)sender;
    // Try again - doesn't work
    ContainerElem.FindControl("AsyncFileUploadId");
}

Как я могу получить конкретный экземпляр, который происходит в моем обработчике загрузки?

~ E

1 Ответ

0 голосов
/ 24 октября 2012
protected void AsyncFileUploadComplete(object oSender, AsyncFileUploadEventArgs e)
{
    try
    {   
        AsyncFileUpload oFileUploadControl = GetFileUploadInstance(ContainerId, (AsyncFileUpload)oSender);
    }
    catch (exception ex)
    {
    }
}

private AsyncFileUpload GetFileUploadInstance(Control oContainer, AsyncFileUpload oSender)
{

    // Place all of your popup controls in a global container, look for the sender as a child control
    foreach (Control oControl in oContainer.Controls)
        if (oControl.Controls.Count != 0 && oControl.FindControl("m_afuFileUpload") == oSender)
            return (AsyncFileUpload)oControl;

    return new AsyncFileUpload(); // || throw new Exception("Could not find ASyncFileUpload Instance");
}
...