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;
}
}