在asp.net的UpdatePanel中更新图像URL
||
我有一个GridView,其中有一个UpdatePanel。我正在尝试通过使用AJAX ASyncFileUpload更新asp:image的I * mage URL *。过去两天来,我一直在Google上寻找解决方案。
这是代码:
更新面板:
<asp:UpdatePanel ID=\"pnlInfo\" runat=\"server\" Font-Names=\"Times New Roman\" UpdateMode=\"Always\" EnableViewState=\"true\"
style=\"display:none; background-color:#FFFFFF; padding:20px; margin:50px; border:3px solid #4B0303; color:Black;
width:inherit;\"
>
<ContentTemplate>
<div runat=\"server\" class=\"divTable\" style=\"width:inherit;\">
<div runat=\"server\" class=\"divRow\" style=\"text-align:center; width:300px; float:left;\">
<asp:Image ID=\"imgUser\" runat=\"server\" ImageAlign=\"Middle\" ImageUrl=\"~/silhouette.jpg\"
Width=\"100px\" Height=\"100px\" EnableViewState=\"true\"/>
<asp:ModalPopupExtender ID=\"ModalPopupEUpload\" runat=\"server\"
CancelControlID=\"btnClosePnl\" OnCancelScript=\"HideModalPopup()\"
TargetControlID=\"imgUser\" PopupControlID=\"pnlUploadImage\" Drag=\"True\"
BackgroundCssClass=\"ModalPopupBg\" DynamicServicePath=\"\" Enabled=\"True\" />
<asp:Panel ID=\"pnlUploadImage\" runat=\"server\" Font-Names=\"Times New Roman\"
style=\"display:none; background-color:#FFFFFF; padding:20px;
margin:50px; border:3px solid #4B0303; color:Black; width:inherit;\"
>
<asp:AsyncFileUpload ID=\"AsyncFileUpload\" runat=\"server\" OnUploadedComplete=\"OnUpdateComplete\"/>
<asp:Button ID=\"btnClosePnl\" runat=\"server\" Text=\"Close\"/>
<asp:Button ID=\"btnUpdate\" runat=\"server\" OnClick=\"OnUpdateComplete\" Visible=\"false\" />
</asp:Panel></div>
//more code
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=\"AsyncFileUpload\" EventName=\"UploadedComplete\" />
</Triggers>
</asp:UpdatePanel></div>
更新面板是ModalPopupExtender的一部分,pnlUploadImage也是如此。这些工作正常。 GridView也可以正常工作。
后台代码:
protected void OnUpdateComplete(object sender, EventArgs e)
{
Image ImgUser = new Image();
AsyncFileUpload asyncSender = new AsyncFileUpload();
AsyncFileUpload asyncGv = new AsyncFileUpload();
//finding the row of the sender
asyncSender = (AsyncFileUpload)sender;
foreach (GridViewRow Row in gvData.Rows)
{
asyncGv = (AsyncFileUpload)Row.Cells[0].FindControl(\"AsyncFileUpload\");
if (asyncSender.ClientID == asyncGv.ClientID)
{
ImgUser = (Image)Row.Cells[0].FindControl(\"imgUser\");
ImgUser.ImageUrl = asyncSender.FileName;
break;
}
}
}
btnUpdate是一个可能无法解决的解决方案。基本上,当我单击Image时,AsyncFileUpload以弹出格式弹出。然后,我选择一张图片并上传。我在UploadComplete上触发了更新,该更新假定是要更改图像URL。
问题是,即使经过了UploadComplete,我看到的图像(silhouette.jpg)仍然停留在该位置。当我逐步执行操作时,我看到ImageURL正在更改。我检查了一下,这是在功能中选择的正确图像。
总体而言,为什么这样做,甚至以为BackURL中的ImageURL被更改了,我在浏览器中看到的图像也没有更改。
没有找到相关结果
已邀请:
2 个回复
谦响局豢报
导力疵谜
加到
的末尾