0

我正在寻找一种在 ASPxGridView 中由 GridViewCommandColumnCustomButton 触发回调时将 PDF 文件加载到 iFrame 的方法。原因是我需要加载不同的 PDF,具体取决于单击 ASPxGridView 上的哪一行。

以下是我目前(未成功)处理回调的方式:

Protected Sub grid_CustomButtonCallback(ByVal sender As Object, ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewCustomButtonCallbackEventArgs)
    If e.ButtonID = "bnPreview" Then
        Dim grid As ASPxGridView = CType(sender, ASPxGridView)
        Dim key As Object = grid.GetRowValues(e.VisibleIndex, grid.KeyFieldName)
        Dim sFile = UploadReportHelper.GetReport(key)
        If sFile <> "" Then
            frame_preview.Attributes("src") = sFile
        End If 
    End If
End Sub

有任何想法吗?

4

1 回答 1

1

您的页面必须有其他事情正在阻止它更新 iframe。如果你将它隔离到另一个项目中,它就可以工作。我刚刚创建了一个新项目并对其进行了测试。下面的作品。

HTML:

<iframe id="myFrame" runat="server"
        src="http://dell.com" width="100%" height="600">

    Your browser doesn't support iframes

</iframe>

<asp:Button ID="myButton" runat="server" 
            Text="Change IFRAME Source" />

代码隐藏:

Protected Sub myButton_Click(sender As Object, 
                             e As System.EventArgs) Handles myButton.Click

    myFrame.Attributes("src") = "http://microsoft.com"

End Sub

根据说明 OP 正在使用 UpdatePanel 的评论进行编辑

在这种情况下,您只需UpdateMode在您的UpdatePanelto上设置Conditional,然后在您的 CodeBehind 中,调用下面类似的.Update()方法UpdatePanel

HTML:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
    
<p>
    <strong>Today's Date:</strong> <%=Now.ToString()%>
</p>

<asp:UpdatePanel ID="myUpdatePanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>

        <iframe id="myFrame" runat="server" 
                src="http://dell.com" width="100%" height="600">
        
            Your browser doesn't support iframes

        </iframe>
            
        <p>
            <asp:Button ID="myButton" runat="server" 
                        Text="Change IFRAME Source" />
        </p>

    </ContentTemplate>
</asp:UpdatePanel>

代码隐藏:

Protected Sub myButton_Click(sender As Object,
                             e As System.EventArgs) Handles myButton.Click

    myFrame.Attributes("src") = "http://microsoft.com"
    myUpdatePanel.Update()

End Sub
于 2013-04-17T15:15:44.597 回答