ここで同じ問題は、OMGのそれですだから厄介な。 IE6/7のレンダリングで、divをグリッドビューの一番上に置いたときにグリッチが発生する - 親DIVによって、2つの要素の間にスペースができます。
私は反射板を使用してGridViewのコードに掘って、問題を発見した:
Protected Friend Overrides Sub Render(ByVal writer As HtmlTextWriter)
Me.Render(writer, Not MyBase.DesignMode)
End Sub
をので、 'renderPanel' ==ないのdesignMode:
Private Sub Render(ByVal writer As HtmlTextWriter, ByVal renderPanel As Boolean)
If (Not Me.Page Is Nothing) Then
Me.Page.VerifyRenderingInServerForm(Me)
End If
Me.PrepareControlHierarchy
If renderPanel Then
Dim clientID As String = Me.ClientID
If Me.DetermineRenderClientScript Then
If (clientID Is Nothing) Then
Throw New HttpException(SR.GetString("GridView_MustBeParented"))
End If
Dim builder As New StringBuilder("__gv", (clientID.Length + 9))
builder.Append(clientID)
builder.Append("__div")
writer.AddAttribute(HtmlTextWriterAttribute.Id, builder.ToString, True)
End If
writer.RenderBeginTag(HtmlTextWriterTag.Div)
End If
Me.RenderContents(writer)
If renderPanel Then
writer.RenderEndTag
End If
End Sub
がこれはレンダリングから呼び出されます。 DIVは、UpdatePanelでgridview がではない場合、ページングとソートに使用されます。私のサイトでは、すべてのGridViewsがUPしているプラス私の解決策は、以下に上記関数をオーバーライドすることだったので、彼らは、カスタムGridViewのクラスから継承されます:
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Me.PrepareControlHierarchy()
Me.RenderContents(writer)
End Sub
他のソリューションからrenderメソッドをコピーすることができ必要に応じて変更しました。
これはHACKの匂いです。あなたは警告されていますが、ページング/ソートを使用していない場合はespで動作する可能性があります。
"のGridViewが含まれている空のdiv" - ティー熙;-D –
笑、あなたは正しい、それはすべての – angelo
でも意味がありません私も解決なしで同じ状況にあります –