2012-08-06 80 views
0

我有一个放置在UpdatePanel中的图像。我在button_click事件中将它设置为ImageUrl。图像位于App_Data/imagesDirectory中。为什么网页上没有显示图像?在它为什么图像在UpdatePanel中时不显示?

<asp:Panel ID="Panel1" runat="server" style="direction: ltr"> 
<asp:ListBox ID="photosListBox" runat="server" Rows="1"></asp:ListBox> 
<asp:Button ID="selectButton" runat="server" Text="select" 
    onclick="selectButton_Click" /> 
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
<br /> 
<asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
    <ContentTemplate> 
     <asp:Image ID="ph" runat="server" /> 
     <br /> 
     <br /> 
     <asp:Button ID="submit" runat="server" onclick="submit_Click" 
      Text="submit" /> 
     <br /> 
     <br /> 
    </ContentTemplate> 
</asp:UpdatePanel> 
</asp:Panel> 

我只是设置ImageUrl属性是相关的图像control.however,按钮代码:

UpdatePanel2.Visible = true; 
     submit.Visible = true; 
     photosListBox.Visible = false; 
     selectButton.Visible = false; 

     Users sentUser = (Users)Session["user"]; 
     Gallery sentGallery = (Gallery)Session["gallery"]; 
     string selectedName = photosListBox.SelectedItem.ToString(); 
     int selectedId = Convert.ToInt32(photosListBox.SelectedItem.Value); 

     ModelContainer ml = new ModelContainer(); 
     Users u = ml.UsersSet.Where(t => t.Username == sentUser.Username).First(); 
     Gallery g = u.Gallery.Where(t => t.Name == sentGallery.Name && t.Id == sentGallery.Id).First(); 
     Photo p = g.Photo.Where(t => t.Name == selectedName && t.Id == selectedId).First(); 

     ph.ImageUrl = MapPath(p.PhotoAdd); 
     nameTextBox.Text = p.Name; 
     descriptionTextBox.Text = p.Description; 
     uploadDateTimeLabel.Text = p.UploadDateTime.ToString(); 

我还设置的ImageUrl属性在page.but的PreRender事件是NT工作:

protected void Page_PreRender(object sender, EventArgs e) 
    { 
     ph.ImageUrl = imageU; 
    } 

imageU是网页类的受保护领域

+1

向我们显示按钮代码。 – Adil 2012-08-06 15:17:49

+0

你调试了你的代码吗?事情在哪个阶段出现错误? – Curt 2012-08-06 15:36:32

+0

检查声明ph.ImageUrl中分配的URL,并将该URL放入浏览器以验证它是否正确? – Adil 2012-08-06 15:39:01

回答

0

你photosListBox不更新面板,所以当submit_Click()正在执行时,所选值不会被发送回服务器。

+0

我已调试我的代码。imageU有价值,它是有效的 – thirdDeveloper 2012-08-06 16:39:27

1

你必须定义的ImageUrl在PreRender事件的页面

1的找到我们的数据在事件

2将数据保存在你的页面的变量

3图像设置属性上的PreRender

+0

必须在button_click事件中检索图像数据。 – thirdDeveloper 2012-08-06 15:40:13

+0

您在事件中检索您的数据,将其保存在本地变量中,并在预渲染中设置 – 2012-08-06 15:42:14