【发布时间】:2014-11-11 08:08:01
【问题描述】:
我正在尝试解决这个问题。 我在 UpdatePanel 中有一个 Accordion。在 Accordion 控件中,我动态地创建最多四个 AccordionPanes,每个都有一个自定义 ListView,显示从数据库获取的一些图像预览。每个预览都由一个 160x120 的 ImageButton 组成。当用户单击其中一个按钮时,会打开一个弹出窗口,其中包含真实大小的图像(通过 Seadragon 控件);他现在可以旋转图像并将其保存回数据库。现在,保存图像后,我关闭弹出窗口并通过在包含 Accordion 的 UpdatePanel 内的隐藏按钮上生成单击事件来提交回发,但即使我可以单步执行隐藏按钮事件代码,也不会刷新地方。隐藏按钮是我尝试过的最后一个(也是最有效的)解决方案,但没有成功。我错过了什么? (绝对最佳的解决方案是刷新唯一更改的图像,因为有时 ListView 包含多个预览)。
这是
<div>
<table class="style8">
<tr>
<td class="style2">
<asp:UpdatePanel ID="usersPanel" runat="server" >
<ContentTemplate>
<cc1:c1treeview ID="tvUsers" runat="server"
onselectednodeschanged="tvUsers_SelectedNodesChanged" AutoPostBack="True"
onnodecheckchanged="tvUsers_SelectedNodesChanged">
</cc1:c1treeview>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="imagesPanel" runat="server" UpdateMode="Always" >
<ContentTemplate>
<asp:Button ID="hiddenImageRefresh" runat="server" Text="Refresh"
style="display:none;" onclick="hiddenImageRefresh_Click" />
<ajaxToolkit:Accordion ID="accImages" runat="server" >
</ajaxToolkit:Accordion>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</div>
这是隐藏按钮单击事件中包含的代码,代码在弹出窗口关闭时定期运行。它只是提取用户代码(促销)并重新绑定数据(LoadImages)
protected void hiddenImageRefresh_Click(object sender, EventArgs e)
{
string promo = "";
if(Session[SessionVariables.CurrentPromoter] != null)
promo = Session[SessionVariables.CurrentPromoter].ToString();
LoadImages(promo, ddlImageType.SelectedValue);
}
【问题讨论】:
-
你是如何触发按钮点击的?在代码隐藏
hiddenImageRefresh_Click方法中放置断点并检查您是否收到控制权。 -
按钮点击是由弹出窗口中的客户端脚本触发的。下面是保存按钮的代码隐藏:
-
protected void bSave_Click(object sender, EventArgs e) { SaveImage(); ClientScriptManager csm = Page.ClientScript; csm.RegisterStartupScript(Page.GetType(), "closeScript", "closePopup(true);", true); }
-
你能告诉我们按钮点击javascript吗,会有问题。你在服务器端获得断点吗?
-
这是客户端脚本调用的 javascript : ' function closePopup(refreshParent) { if (refreshParent != null) { var bRefresh = window.opener.document.getElementById('hiddenImageRefresh'); if (bRefresh == null) alert('Tag di refresh non trovato !');否则 bRefresh.click(); } window.close(); }'。代码隐藏事件 hiddenImageRefresh_Click 中的代码被调用,并且所有控件的值都到位(即 ddlImageType.SelectedValue)。
标签: asp.net