UpdatePanel асинхронная обратная передача не обновляет содержимое - PullRequest
0 голосов
/ 25 мая 2011

У меня проблема, очень похожая на этот вопрос .На моей странице есть выпадающий список, который вызывает обратную передачу, во время которой изменяется ImageUrl свойства ASP:Image.Когда происходит обратная передача, любое значение в FileUpload очищается.Это проблема, которую я пытаюсь решить, но я столкнулся с этой проблемой в процессе.

Я пытаюсь решить проблему, поместив раскрывающийся список и изображение в UpdatePanel.Вот моя разметка 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>

EDIT: мой код, выполняющий обновление, находится здесь:

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-адрес изображенияне меняется.Что я делаю не так?

1 Ответ

0 голосов
/ 26 мая 2011

Вам не хватает кода, который выполняет обновление (код, вызываемый выбранным индексом, изменяется в раскрывающемся списке);однако я рискну предположить, что ваша проблема вызвана тем, что вы загружаете DDL через элемент управления, а не программно.

Причина, по которой вы можете столкнуться с этой проблемой, заключается в том, что функция загрузки страницывызывается до заполнения элементов управления источниками данных, что означает, что DDL не заполняется к тому времени, когда вы ищете значение, поэтому ваше изображение появляется с пробелом.

Пример:

 Dim sTemp As String = "images/myimagenumber" & myDropdown.SelectedIndex & ".jpg"

Это вернет "images / myimagenumber.jpg" в качестве значения строки sTemp, поскольку в момент загрузки страницы не выбрано значение или индекс, выбранный.

Я предлагаю вам загрузить значениявыпадающий список вручную (программно), а затем в подпрограмме 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

I 'мы сталкивались с этим пару раз за эти годы, и это всегда заканчивалось тем, что DDL не заполняется до того, как яЯ к нему обращаюсь.

...