c# - 在 UpdatePanel 中将项目添加到 ListBox
问题描述
我有一个存在于 ASP.NET 网络表单上的 UpdatePanel 中的列表框。在UpdatePanel内部,还有一个Button,可以将一堆ListItem添加到Listbox中,这个PostBackTrigger如下图所示:
<asp:UpdatePanel ID="updSection6" runat="server">
<ContentTemplate>
<asp:LinkButton Text="Run Scan" ID="btnEditSectionStory6" runat="server" OnClick="btnRunScan_Click" />
<br />
<asp:ListBox ID="lbLog" runat="server" Height="263px" Width="747px"></asp:ListBox>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnEditSectionStory6" />
</Triggers>
</asp:UpdatePanel>
我在点击事件中添加项目:
protected void btnRunScan_Click(object sender, EventArgs e)
{
lbLog.Items.Add("Scan Beginning...");
.....hundreds of other items
}
这些项目被添加到 ListBox,但是它是在整个 btnRunScan_Click 方法运行之后,而不是在每个事件发生时添加它们(因此用户可以在操作发生时接收消息)。我是否缺少 UpdatePanel 上的属性或其他内容?
TIA
解决方案
要在不刷新页面的情况下添加项目或阻止调用循环事件,请使用以下代码并消除触发器内的 postBackTrigger。使用以下经过测试对我有用的代码。还使用 scriptManager 来防止异常使用 updatePanel
.aspx 设计文件
<asp:ScriptManager runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updSection6" runat="server">
<Triggers>
</Triggers>
<ContentTemplate>
<asp:LinkButton Text="Run Scan" ID="btnEditSectionStory6" runat="server" OnClick="btnRunScan_Click" />
<br />
<asp:ListBox ID="lbLog" runat="server" Height="263px" Width="747px"></asp:ListBox>
</ContentTemplate>
</asp:UpdatePanel>
.cs 文件
protected void btnRunScan_Click(object sender, EventArgs e)
{
lbLog.Items.Add("Scan Beginning...");
}
正如其他人还提到的,您还可以使用带有 ajax 的 jquery 在客户端进行编码来执行此操作。
推荐阅读
- python - HTTP Web 服务器 POST 返回空白页(Python)
- javascript - 弹出框内容 - 弹出框内未显示按钮(JQuery / Javascript / HTML / Bootstrap)
- python - 从 Python 中的谷歌查询中检索单个值
- arrays - 如何打印 Lua 表中的所有值?
- azure - 以 5 个为一组并行启动 vm
- java - 合并排序 Java 实现,因此合并在一个数组内工作,第二个拆分数组反转
- php - 如何快速填充 php 对象的私有属性?
- javascript - 如何将对象与函数属性结合起来?JS
- javascript - 在 textarea 中安装文本编辑器
- asp.net-core - 无法在剃刀页面上获取查询元素