UpdatePanel异步回发不更新内容

问题描述

我有一个与此问题非常相似的问题。我的页面上有一个下拉列表会导致回发,在此期间会更改
ASP:Image
ImageUrl
属性。发生该回发时,将清除FileUpload中的所有值。这就是我要解决的问题,但是我在此过程中遇到了这个问题。 我正试图通过将下拉列表和图片包装在ѭ2中来解决此问题。这是我的ASP标记:
<asp:UpdatePanel ID=\"upPanel\" runat=\"server\">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID=\"myDropdown\" 
           EventName=\"SelectedIndexChanged\" />
    </Triggers>
    <ContentTemplate>
        <tr valign=\"top\">
        <td>Tag:</td>
        <td>
            <asp:DropDownList ID=\"myDropdown\" runat=\"server\" 
                        AppendDataBoundItems=\"true\" DataTextField=\"Name\" 
                        DataValueField=\"ID\" AutoPostBack=\"true\">
                <asp:ListItem Value=\"\" />
            </asp:DropDownList>
        </td>
        </tr>
        <TR vAlign=\"top\">
        <TD width=\"150\">Thumbnail:</TD>
        <TD>
                <asp:Image id=\"imgThumbnail\" Runat=\"server\" 
                     AlternateText=\"No Image Found\" 
                     Visible=\"false\"></asp:Image><BR>
        </TD>
        </TR>
    </ContentTemplate>
</asp:UpdatePanel>
编辑:我执行更新的代码在这里:
Private Sub myDropdown_SelectedIndexChanged(ByVal sender As Object,ByVal e As EventArgs) Handles myDropdown.SelectedIndexChanged
        If (myDropdown.SelectedValue <> \"-1\") Then
            imgThumbnail.ImageUrl = Application(\"AppPath\") + \"/Modules/Broadcaster/ImageGen.ashx?tag=\" + myDropdown.SelectedValue
        Else
            imgThumbnail.ImageUrl = Application(\"AppPath\") + \"/Modules/Broadcaster/ImageGen.ashx?defaultTag=\" + _modID.ToString()
        End If
End Sub
我可以看到FireBug中发生了异步回发,但是图像URL并没有改变。我究竟做错了什么?     

解决方法

您缺少进行更新的代码(由所选索引调用的代码在下拉列表中更改);但是,我将大胆猜测是由于您通过控件而不是通过编程方式加载DDL而引起的问题。 您可能会遇到此问题的原因是,在填充数据源控件之前调用了页面加载函数,这意味着在您寻找值时未填充DDL,因此图像出现了错误。空白。 例:
 Dim sTemp As String = \"images/myimagenumber\" & myDropdown.SelectedIndex & \".jpg\"
这将返回\“ images / myimagenumber.jpg \”作为sTemp字符串的值,因为在页面加载时未选择任何值或索引。 建议您手动(以编程方式)加载dropdownlist的值,然后在page_load子例程中确保仅在首次加载页面时才重新填充下拉列表。 VB.Net示例:
 Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)
     If Page.IsPostback = False Then
          runDBLFillSubHere()
     End If

     \'Run Rest of Code Here\'
 Sub
多年来,我已经遇到过几次,但最终总是因为在访问DDL之前未填充DDL。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...