C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: GridView 合計の長さについて


(過去ログ 102 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■61193 / inTopicNo.1)  GridView 合計の長さについて
  
□投稿者/ AMI (19回)-(2011/08/05(Fri) 09:22:50)

分類:[.NET 全般] 

開発環境
OS: WindowsXP SP3
言語: VisualStudio2010 VB
Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel
Microsoft .NET Framework
Version 4.0.30319 RTMRel

GridviewでWidthの指定をしているのですが、
反映されない列があります。
下記コードでデータベースのフィールドの長さに応じて
GridviewのWidthを変更するようにしています。
しかし、3列ほど変更されません(その3列はデータベースに1文字または空白です)
ですのでコードである列は強制的に
Widthを指定してます
Case 6
GridView2.Columns(catLoop + 1).ItemStyle.Width = 100
GridView2.Columns(catLoop + 1).ItemStyle.Wrap = False
上記分で6列目にはWidt=100をいれて、
強制的に指定しているのですが、
反映されてないようです。(デバッグでこのコードを実行されているとこまでは確認できました)

そこで切り分けとして、
他の行をWidth=50ぐらいにして、
反映されない3列に100をいれたらきちんと反映されるのは確認できました。
そこでGridview自体のWidthの長さというのはトータルできまっているのでしょうか?
列自体が11列ぐらいあり、長くなっています。

アドバイスの程よろしくお願いします。



Private Sub GridView2_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound

Dim catName(0 To 9) As String
Dim catNameLen(0 To 9) As String
Dim widestData(0 To 9) As Integer

Dim catLoop As Integer

Dim drv As System.Data.DataRowView
drv = CType(e.Row.DataItem, System.Data.DataRowView)

If e.Row.RowType = DataControlRowType.DataRow Then
If drv IsNot Nothing Then
'Dim catName As String = drv(1).ToString()
For catLoop = 0 To 9
catName(catLoop) = drv(catLoop).ToString()
catNameLen(catLoop) = catName(catLoop).Length
Select Case catLoop
Case 6
GridView2.Columns(catLoop + 1).ItemStyle.Width = 100
GridView2.Columns(catLoop + 1).ItemStyle.Wrap = False
Case Else
If catNameLen(catLoop) > widestData(catLoop) Then
widestData(catLoop) = catNameLen(catLoop)
GridView2.Columns(catLoop + 1).ItemStyle.Width = _
widestData(catLoop) * 50
GridView2.Columns(catLoop + 1).ItemStyle.Wrap = False
End If
End Select
Next
End If
End If



End Sub
引用返信 編集キー/
■61217 / inTopicNo.2)  Re[1]: GridView 合計の長さについて
□投稿者/ AMI (22回)-(2011/08/05(Fri) 17:09:54)
少しわかったことを記載します。
Widthの幅は、きちんと反映されているみたいです。
原因は、パソコンの解像度の問題で、
最初1024×768で見た場合は、
ヘッダー部のWidthが変わってないように見えたのは、
表示しきれてなくて自動的に見えるように2段3段と表示されていた為でした。

その後1920×1200でみたらきちんと指定したWIDTHで表示されました。
そこで
質問ですが、幅の固定化というのはGridviewでは可能なのでしょうか?
現状はPanelの中にGridviewをおいて、スクロールできるようにはしていますが、
画面が小さくなると、自動的にWidthが変動してしまいます。

アドバイスの程よろしくお願いします。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -