- PR -

GridViewのレイアウト変更

1
投稿者投稿内容
WOW
会議室デビュー日: 2007/02/15
投稿数: 9
投稿日時: 2007-04-05 11:42
現在GridViewにて以下の記述でテーブルを作成しています。


<asp:GridView ID="grid" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
CellPadding="4" GridLines="None"
PageSize="5" ShowFooter="True" OnRowCreated="grid_RowCreated" >
<FooterStyle Font-Bold="True" ForeColor="White" />
<Columns>


<asp:TemplateField HeaderText="項目1">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="項目2" SortExpression="hd">
<ItemTemplate>
<asp:HyperLink ID = "HY1" runat="server"
NavigateUrl= '<%# "user1-3.aspx?mid=" & DataBinder.Eval(Container, "DataItem.mokuroku_id") %>'
Text='<%# Eval("title") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="項目3" SortExpression="sb">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("material_no") %>' />
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>

現在の状態は以下の表示になります。
――――――――――――――――
|ヘッダー   |項目1|項目2|項目3|
――――――――――――――――
|1レコード目 |項目1|項目2|項目3|
――――――――――――――――

これを、下記のようにしたいのですが、どのようにすれば良いのでしょうか??

―――――――――――――
|ヘッダー  |項目1|項目2|
|       |    |    |
|       |    |項目3|
―――――――――――――
|1レコード目 |項目1|項目2|
|       |    |    |
|       |    |項目3|
―――――――――――――

項目2と3の間には線があってもなくてもかまいません。
現在自分でもいろいろと試したり探したりしていますが、
恐れ入りますがご教授お願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-04-05 12:20
テンプレート カラム

SQLはどうなったの?
_________________
WOW
会議室デビュー日: 2007/02/15
投稿数: 9
投稿日時: 2007-04-05 12:39
Jitta様

その節は御回答ありがとうございました。
現在いくつかの問題(実装できていない箇所)があり、
平行に進めていまして、まず優先順位が高くなってしまったこちらを先に解決しなければならなくなってしまいました。
返答できていなくてすみません。
切羽詰った状況ですので申し訳ないです。
WOW
会議室デビュー日: 2007/02/15
投稿数: 9
投稿日時: 2007-04-05 12:48
今現在以下のサイトを参考にしています。
http://forums.microsoft.com/msdn-ja/showpost.aspx?postid=856993&siteid=7&sb=0&d=1&at=7&ft=11&tf=0&pageid=0

下記のRowDataBoundでどうにかなりそうだと思い、ソースを理解しながら進めているところです。


Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Grid.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then

Dim table As Table = e.Row.Parent
Dim row As GridViewRow = New GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal)
Dim cell As TableCell = New TableCell()
Dim value As String = e.Row.Cells(5).Text


e.Row.Cells.RemoveAt(5)
e.Row.Cells(0).RowSpan = 2
e.Row.Cells(1).RowSpan = 2
e.Row.Cells(5).RowSpan = 2


cell.ColumnSpan = 3
cell.Controls.Add(New LiteralControl(value))
row.Cells.Add(cell)
table.Rows.Add(row)

End If

End Sub


中間報告させていただきました。
1

スキルアップ/キャリアアップ(JOB@IT)