由于从数据库里读出二进制流的图片,不会控制,就放到了iframe里。然后需要在上面动态的创建控件。代码如下:
 Private Sub painControls()
        Dim SQL As String
        SQL = "select * from EGSTCTRPRO where ctrparent='frmMCBSYTCX'"
        Dim ds As DataSet
        ds = getDataset(SQL)
        Dim dr As DataRow
        Try
            For Each dr In ds.Tables(0).Rows
                Dim tmp As New Label
                Dim style As String
                tmp.Text = "123"
                tmp.ID = dr("ctrname")
                tmp.BackColor = Color.Green
                style = "position:absolute;width=77px;z-index:300px;"
                style += "left:" + dr("left").ToString + "px;"
                style += "top:" + dr("top").ToString + "px;"
                tmp.Attributes.Add("style", style)
                Page.Controls.Add(tmp)
            Next        Catch ex As Exception        End Try我的问题是,如何可以让这些生成的控件们,不被iframe及其里面的图片遮住。我要让自动生成的控件显示在最上面。另外请看好,代码中已经加上z-index了。

解决方案 »

  1.   

    在iframe上再套一层div,div置顶层。然后里面添加控件就ok了
      

  2.   

    iframe遮住页面上相应位置的所有东西,这些东西或者iframe的z-index没有任何作用,不论怎么设置iframe都在最上边,同样对dropDownList不论怎么设置z-index都不能放到普通标签的下边。
      

  3.   

    iframe好像是通杀一切,其次就是flash控件,一般想最前置就用个透明的iframe套住
      

  4.   

    问题解决。将IFrame背景设为透明
    首先将要透明的页面的body添加为<body style="background-color=transparent">
    然后在调用Iframe的页面里<iframe src="somepage.aspx" allowTransparency="true"></iframe>就可以了。注意,仅在IE5.5以上支持。