|
分類:[ASP.NET (VB)]
お世話になります。 当方、VB2008/ASP.NET/VBでWEBアプリケーション構築をしています。
現在、TabControl・GridViewを使用したページを作っています。 TabControlの外ではJavaScriptを利用した行の選択処理を行えるのですが TabControl内のGridViewでは選択処理が完全に反映されていない状態です。 やり方としては、コード内で選択リンクの行を非表示にし、aspx側のJavaScriptに PostBack処理をさせています。選択したい行をどこでもいいのでクリックすれば 背景色が変わるようにしたつもりです。
Tabは5つあり、1つ1つに別々のGridViewが配置してあります。 PostBackは来ているようですが、背景色が変更されません。背景色はcssで指定しています。 ページの<head>内でリンクを貼ってcssファイルを読み込む感じです。 TabControl内ではJavaScriptでのcss利用(?)は使用できないのでしょうか。
他人が作っていたものを途中から引き継いでいるのでアレですが コードを載せておきます。 /* JavaScript */ <script type="text/javascript" language="javascript"> function SelectedRow(rowNum, gridViewId) { __doPostBack(gridViewId, 'Select$' + rowNum); } </script>
/* GridViewイベント これがGridView分(5つ)あります */ Private Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated e.Row.Cells(0).Style.Add("display", "none") If Not e.Row.RowType = DataControlRowType.DataRow Then Exit Sub End If
Dim clickEvent As String = String.Format("SelectedRow('{0}', '{1}')", e.Row.RowIndex, Me.GridView1.ClientID)
e.Row.Attributes.Add("onClick", clickEvent) e.Row.Attributes.Add("onDblClick", clickEvent)
e.Row.Style.Add("cursor", "hand")
Me.Page.MaintainScrollPositionOnPostBack = True End Sub
/* GridView (TabControl分(5つ)あります/cssを使用しています) */ <ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="タブ名"><HeaderTemplate>タブ名</HeaderTemplate> <ContentTemplate> <asp:Panel ID="Panel2" runat="server" Height="290px" Width="500px" ScrollBars="Auto"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="dgv"> <RowStyle CssClass="dgvrs" /> <AlternatingRowStyle CssClass="dgvars" /> <Columns> <asp:CommandField ShowSelectButton="True" > <ItemStyle Width="40px" /></asp:CommandField> <asp:BoundField DataField="カラム名1" headertext="カラム名1" SortExpression="カラム名1"> <ItemStyle CssClass="dgvis" Wrap="False" Width="150px"/></asp:BoundField> <asp:BoundField DataField="カラム名2" headertext="カラム名2" SortExpression="カラム名2"> <ItemStyle CssClass="dgvis" Wrap="False" Width="280px" /></asp:BoundField></Columns> <HeaderStyle CssClass="dgvhs" Wrap="False" /> <SelectedRowStyle Wrap="False" CssClass="dgvsrs" /> </asp:GridView> </asp:Panel></ContentTemplate></ajaxToolkit:TabPanel>
どうぞよろしくお願いします。
|