ASP.NETアプリケーションから Twitter Bootstrap を使用して問題が発生しています。 table table-striped
cssクラスをasp:GridView
コントロールに使用すると、テーブルのHeaderを行。
<asp:GridView ID="dgvUsers" runat="server"
CssClass="table table-hover table-striped" GridLines="None"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="UserID" HeaderText="ID" Visible="false" />
<asp:BoundField DataField="Username" HeaderText="Username" />
<asp:BoundField DataField="FirstName" HeaderText="First Name" />
<asp:BoundField DataField="LastName" HeaderText="Last Name" />
</Columns>
<RowStyle CssClass="cursor-pointer" />
</asp:GridView>
<table id="cphMainContent_dgvUsers" class="table table-hover table-striped"
cellspacing="0" style="border-collapse:collapse;">
<tbody>
<tr>
<th scope="col">Username</th>
<th scope="col">First Name</th>
<th scope="col">Last Name</th>
</tr>
<tr class="cursor-pointer">
<td>user1</td>
<td>Test</td>
<td>User 1</td>
</tr>
<tr class="cursor-pointer">
<td>user2</td>
<td>Test</td>
<td>User 2</td>
</tr>
<tr class="cursor-pointer">
<td>user3</td>
<td>Test</td>
<td>User 3</td>
</tr>
</tbody>
</table>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<td>2</td>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>3</td>
<td>Larry</td>
<td>the Bird</td>
<td>@Twitter</td>
</tr>
</tbody>
</table>
Twitterブートストラップでasp:GridView
のヘッダーをヘッダーとして処理するにはどうすればよいですか?私のコードはC#、フレームワーク4、VS2010 Proでビルドされています。
Gridviewのuseaccessibleheader
属性をtrue
に設定し、DataBind()
メソッドを呼び出した後、ヘッダーとしてTableSection
も指定する必要があります。 GridViewオブジェクト。グリッドビューがmygv
の場合
mygv.UseAccessibleHeader = True
mygv.HeaderRow.TableSection = TableRowSection.TableHeader
これにより、thead
およびtbody
タグを使用して適切にフォーマットされたグリッドが作成されます。
これを解決するには2つの手順があります。
_UseAccessibleHeader="true"
_をGridviewタグに追加します。
_<asp:GridView ID="MyGridView" runat="server" UseAccessibleHeader="true">
_
PreRender
イベントに次のコードを追加します。
_
Protected Sub MyGridView_PreRender(sender As Object, e As EventArgs) Handles MyGridView.PreRender
Try
MyGridView.HeaderRow.TableSection = TableRowSection.TableHeader
Catch ex As Exception
End Try
End Sub
_
DataBound()
のHeader Rowの設定は、オブジェクトがデータバインドされている場合にのみ機能します。gridviewをデータバインドしない他のポストバックでは、gridviewヘッダー行スタイルが再び標準行に戻ります。 PreRenderは常に機能します。gridviewが空の場合にエラーをキャッチするようにしてください。
記録のためだけに、テーブルに境界線があり、それを取り除くには、GridViewで次のプロパティを設定する必要がありました。
GridLines="None"
CellSpacing="-1"
Gridviewにショーヘッダーのプロパティを追加
<asp:GridView ID="dgvUsers" runat="server" **showHeader="True"** CssClass="table table-hover table-striped" GridLines="None"
AutoGenerateColumns="False">
列にヘッダーテンプレートを追加します
<HeaderTemplate>
//header column names
</HeaderTemplate>