私の最初の投稿で、タイトルに意味があることを願っています。
更新パネルがあり、その中にアップロードをトリガーするボタンのあるファイルアップロードコントロールがあります。その下には、アップロードされたファイルのリストを含むビハインドファイルにデータバインドされたListViewがあります。updatepanelには、アップロードボタンを指す「PostBackTrigger」があります。
これらはすべて、正常に機能します。リストされているアイテムごとに、その特定のファイルを削除するリンクボタンがあります。それも正常に機能しますが、ここに問題があります。ポストバックはトリガーされず、Webを検索した後、答えのスタックオーバーフローは言うまでもなく、さまざまな方法を試しました。私はたくさん試しましたが、最良の解決策が実装されているように見えても、実際には何も起こりません。
ascxファイル(重要な場合はユーザーコントロール):
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="LabelUploadFile" runat="server" Text="Upload fil:"></asp:Label>
<br />
<asp:FileUpload ID="FileUploadDocument" runat="server" />
<br />
<asp:DropDownList ID="DropDownListDocumentType" runat="server"></asp:DropDownList>
<br />
<asp:Button ID="ButtonUploadFile" runat="server" Text="Upload fil" CssClass="nice small radius action button" onclick="ButtonUploadFile_Click" />
<br />
<br />
<br />
<asp:ListView ID="ListViewDocuments" runat="server" OnItemCommand="ListViewDocuments_ItemCommand">
<LayoutTemplate>
<table border="0" cellpadding="1">
<tr>
<th align="left">Type</th>
<th align="left">Dokument</th>
<th></th>
</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><asp:Label runat="server" ID="lblName"><%#Eval("Type") %></asp:Label></td>
<td><asp:Label runat="server" ID="lblType"><%#Eval("Dokument") %></asp:Label></td>
<td><asp:LinkButton ID="DeleteButton" OnClientClick="return confirm('Slet dokument?');" CommandName="Delete" CommandArgument='<%# Eval("id")%>' runat="server" Text="Slet"></asp:LinkButton></td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<tr>
<td> </td>
<td>Du har ikke uploadet filer endnu.</td>
<td> </td>
</tr>
</EmptyDataTemplate>
</asp:ListView>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ButtonUploadFile" />
<asp:AsyncPostBackTrigger ControlID="ListViewDocuments" EventName="ItemCommand" />
</Triggers>
(asyncpostbacktriggerは、私が試した、削除していない別のソリューションであることに注意してください。また、scriptmanagerが存在し、上記のコードでは表されていません)
背後のファイルからのListViewDocuments_ItemCommand:
protected void ListViewDocuments_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
//Send the file's ID to the data layer for deletion
_talentDataAccess.DeleteTalentFileByFileId(Convert.ToInt32(e.CommandArgument));
//Rebind the listveiw with a new list of files.
_fillFileList();
}
}
だから私が言ったように、技術的にはすべてが機能しますが、要するにリンクボタンはアップデートパネルを更新しません。
他のコードスニペットについて質問や必要がある場合は、すみやかに回答します。
前もって感謝します。