C# 触发ItemCommand事件后无法刷新Listview
我有一个允许编辑和删除的列表视图。 当我单击listview中的linkbutton时,它会启动page_load,然后加载到OnItemCommand。 在命令的末尾,我添加了DataBind,它不刷新我的listview,但删除了我的条目。 如果我将数据绑定更改为重定向回具有(…aspx?ID=…)的同一页面,它将返回一个新页面。但在调试模式下,我看到它在页面加载和数据绑定中运行C# 触发ItemCommand事件后无法刷新Listview,c#,asp.net,listview,webforms,C#,Asp.net,Listview,Webforms,我有一个允许编辑和删除的列表视图。 当我单击listview中的linkbutton时,它会启动page_load,然后加载到OnItemCommand。 在命令的末尾,我添加了DataBind,它不刷新我的listview,但删除了我的条目。 如果我将数据绑定更改为重定向回具有(…aspx?ID=…)的同一页面,它将返回一个新页面。但在调试模式下,我看到它在页面加载和数据绑定中运行 <asp:UpdatePanel ID="UpdateOptions" runat="server" &g
<asp:UpdatePanel ID="UpdateOptions" runat="server" >
<ContentTemplate>
<asp:Panel ID="OPanel" runat="server" width="350px">
<asp:ListView runat="server" ID="lvPollOptions" DataKeyNames="POptionID" OnItemCommand="lvPollOptions_ItemCommand" OnDataBound="lvPollOptions_ItemDataBound" >
<LayoutTemplate>
<table cellpadding="0" cellspacing="0" border="0" width="300px">
<tr class="AdminListHeader">
</tr>
<tr id="itemPlaceholder" runat="server">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("OptionText")%>
</td>
<td>
<%#Eval("Votes")%>
</td>
<td align="center">
<asp:ImageButton runat="server" ID="ibtnEditOption" CommandArgument='<%# Eval("POptionID").ToString() %>' CommandName="Edit" ImageUrl="~/images/buttons/EditPencil.gif" AlternateText="Edit" CssClass="AdminImg" />
</td>
<td>
<asp:ImageButton runat="server" ID="ibtnDeleteOption" CommandArgument='<%# Eval("POptionID").ToString() %>' CommandName="Delete" ImageUrl="~/images/buttons/delete.gif" AlternateText="Delete" CssClass="AdminImg" OnClientClick="return confirm('Warning: This will delete the Poll Option from the database.');" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:Label ID="lblNoOption" runat="server" Text="No Options Added"></asp:Label>
<table width="345px">
<tr>
<td width="100px">
Option:
</td>
<td>
<asp:TextBox ID="txtOption" runat="server" width="200px"></asp:TextBox>
</td>
</tr>
</table>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
在我们开始之前-您的代码有安全风险,因为它容易,请确保您的查询 现在,您的问题不是很清楚,但如果我理解正确,您的意思是删除对象后,回发后列表视图不会刷新(例如,您仍然可以看到已删除的项目)。由于您正在UpdatePanel中运行,请确保在数据绑定后更新面板 像这样更新
PoolBindData
protected void PollBindData()
{
SqlConnection connOption = new SqlConnection(connStr);
connOption.Open();
// POTENTIAL SECURITY RISK - MAKE SURE YOU PARAMETRIZE THE QUERY!!
SqlDataAdapter da = new SqlDataAdapter("SELECT POptionID, OptionText, Votes FROM [PollOptions] Where PollID = '" + PID + "'", connOption);
DataTable dsSel = new DataTable();
da.Fill(dsSel);
lvPollOptions.DataSource = dsSel;
lvPollOptions.DataBind();
connOption.Close();
// Update panel
UpdateOptions.Update();
}
protected void PollBindData()
{
SqlConnection connOption = new SqlConnection(connStr);
connOption.Open();
// POTENTIAL SECURITY RISK - MAKE SURE YOU PARAMETRIZE THE QUERY!!
SqlDataAdapter da = new SqlDataAdapter("SELECT POptionID, OptionText, Votes FROM [PollOptions] Where PollID = '" + PID + "'", connOption);
DataTable dsSel = new DataTable();
da.Fill(dsSel);
lvPollOptions.DataSource = dsSel;
lvPollOptions.DataBind();
connOption.Close();
// Update panel
UpdateOptions.Update();
}