ListView + Текущая строка + ImageButton

У меня есть таблица MSSQL с именем "Account", в которой хранится информация об учетной записи:

AccountID SupplierID AccountNumber AccountDate AccountFileName (имя файла PDF) AccountFileData (содержимое файла PDF, varbinary(max))

У меня также есть ListView (привязанный к таблице "Account" через DataSource), который отображает информацию об учетной записи и ImageButton внутри ItemTemplate. Когда я нажимаю кнопку ImageButton внутри строки ListView, я хочу открыть соответствующий файл PDF.

У кого-нибудь есть идея, как я могу это сделать?

1 ответ

Решение

Это должно быть просто. Настройте кнопку изображения в шаблоне элемента и присвойте ему CommandName и CommandArgument (привязанный к идентификатору):

 ...
 <ItemTemplate>
     ...
     <asp:ImageButton runat="server" id="foobar" CommandName="DownloadPDF" CommandArgument='"<%# Eval( "AccountID" ) #>' />
 </ItemTemplate>

Затем добавьте OnItemCommand к вашему ListView:

 <asp:ListView .... OnItemCommand="TheListView_ItemCommand"

и реализовать его, чтобы поймать DownloadPDF уведомление от дочернего элемента управления (кнопка ImageButton):

    protected void TheListView_ItemCommand( object sender, ListViewCommandEventArgs e )
    {
        switch ( e.CommandName )
        {
            case "DownloadPDF":

                string accountID = e.CommandArgument;

                // now create the PDF and send it back to the client

                break;
        }
    }
Другие вопросы по тегам