• ベストアンサー

GridViewとJavascriptの連携

GridViewを使い、明細表示を考えています。 その際、レコードにリンクを設定し、 JavaScriptに連携させたいと考えています。 そこで、レコードのカラムの値を利用しようと考えているのですが、 うまくJavaScriptに引数として渡せません。 何かいい方法はありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お世話になります。 連携とおっしゃるのがイマイチ解らないのですが こういう事とかでしょうか。 ■aspx <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default3.aspx.vb" Inherits="Default3" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">   <title>無題のページ</title> </head> <body>   <form id="form1" runat="server">   <div>     <asp:GridView ID="GridView1" runat="server" DataSource='<%# m_datasource %>' AutoGenerateColumns="False">       <Columns>         <asp:TemplateField HeaderText="Field1">           <ItemTemplate>             <asp:LinkButton ID="LinkButton1"               Text='<%# DataBinder.Eval(Container, "DataItem.Field1") %>'               CommandArgument='<%# DataBinder.Eval(Container, "DataItem.Field1") %>'               CommandName="MyCommandName"               runat="server">LinkButton</asp:LinkButton>           </ItemTemplate>         </asp:TemplateField>         <asp:BoundField DataField="Field2" HeaderText="Field2" />         <asp:BoundField DataField="Field2" HeaderText="Field3" />       </Columns>     </asp:GridView>     </div>     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>     <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>   </form> </body> </html> ■aspx.vb Partial Class Default3   Inherits System.Web.UI.Page   Protected m_datasource As Data.DataTable   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load     If Not IsPostBack Then       Dim dt As Data.DataTable = New Data.DataTable       dt.Columns.Add("Field1", GetType(String))       dt.Columns.Add("Field2", GetType(String))       dt.Columns.Add("Field3", GetType(String))       For i As Integer = 1 To 10         dt.Rows.Add(New String() {i.ToString(), _                      i.ToString() + i.ToString(), _                      i.ToString() + i.ToString() + i.ToString()})       Next       Session("myData") = dt       Me.m_datasource = dt       Me.GridView1.DataSource = dt       Me.GridView1.DataBind()     Else       Me.m_datasource = DirectCast(Session("myData"), Data.DataTable)     End If   End Sub   Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand     If e.CommandName = "MyCommandName" Then       Dim index As Integer = Convert.ToInt32(e.CommandArgument)       Me.TextBox1.Text = Convert.ToString(Me.m_datasource.Rows(index)("Field1"))       Me.TextBox2.Text = Convert.ToString(Me.m_datasource.Rows(index)("Field2"))       Me.TextBox3.Text = Convert.ToString(Me.m_datasource.Rows(index)("Field3"))     End If   End Sub End Class

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • GridViewでエラー

    現在、ACCESSデータベースに接続し一覧を表示するWebページを作成しています。開発ソフトはvisual studio 2005 proです。  webフォーム上のテキストボックスの値に応じてGridViewの内容にフィルタをかけているのですが、一覧に存在する値でフィルタをかけるときは表示されるのですが、一覧にない値でフィルタをかけた時、[指定された引数は、有効な値の範囲内にありません。 パラメータ名: index ] とエラーが表示されます。EmptyTemplateというところには[表示データがありません]と入力はしているのですが。。。通常表示データがない場合にはEmptyTemplateの値が表示されると思うのですが。。GridViewのプロパティの設定でしょうか?よろしくお願いします。

  • GridViewを自動的にスクロールするには

    Aクライアントはデータをサーバーに送信し、サーバーは蓄積します。 Bクライアントはサーバーに蓄積されたデータに変化があれば, その都度GridViewで常時表示しています。 GridViewには新しいデータを下の行に、古いデータを上の行にという順序で表示しています。 GridViewにはスクローバーを付けています。 GridViewではいつも最新のデータを表示させたいので、いつも最下行を表示させるようにしたい。 つまり、新しい情報を1行表示させるたびに、1行スクロールアップさせたいのですが、スクロールの方法がわかりません。 言語はJavaScriptを使用しています。よろしくお願いします。

  • GridViewのEditTemplate

    すみません。改めて質問させていただきます。 GridViewのEditTemplateにDropDownListが配置されています。 更新したときに、そのDropDownListの値を取得する方法をご教授頂きたいです。 言語はVBです。以下のコードを書きましたが取得できません(Updatingイベントのとき)↓ Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating MsgBox(GridView1.Rows(e.RowIndex).ToString) End Sub とりあえずメッセージボックスにドロップダウンリストの値を表示したいです。

  • GridViewの行の入れ替えについて

    VS2005 ASP.NET GridViewの列を動的に並び替える方法をさがしています. 具体的にはpage_load関数内で 別のファイルやユーザの設定した コントロールの値などから 表示する列を並びを入れ替えたいと思っています. 列のたいとるや数は変わりません。 お力添えをお願いいたします

  • PHPとJavaScriptの連携について

    PHPとJavaScriptの連携をしたいと思いましたが、下記が分からなかったので、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 1. 下記の親ウィンドウで子ウィンドウを開く後、テキストエリアに文字を入力し、値をセットボタンを押すと、「親ウィンドウ」の「値が渡せます」には値が渡せますが、「値が渡せません」には値が渡せません。 違いはnameをtext00からdata[text02]に変更したのみとなります。 2. 下記のソースでは、子ウィンドウのテキストエリアに入力した内容をそのまま渡してますが、子ウィンドウのテキストエリアの情報を基に、PHPでデータベースを検索し、ヒットしたものを親ウィンドウに渡したいと思います。 下記のソースを例にすると、「値をセット」ボタンを押した後、テキストエリアの値を子ウィンドウのSELECT文のidに設定し、取得した$tmpの内容を親ウィンドウに渡したいと思います。 なお、記載のSQL文はシンプルですが、実際には複数のフィールドの値を取り、idの値も複数あります(下記のデータベースを例にすると、idに1と2を渡した際、親ウィンドウのテキストエリアに「あいうえお かきくけこ」と表示させ、idの値を隠し項目でもっていたいと思います)。 3. 上記2で親ウィンドウにデータベースの値を渡した後、子ウィンドウを開くクリック時、子ウィンドウのテキストエリアに渡したidの値を表示したいと思います。 【index.html(親ウィンドウ)】 <script type="text/javascript"> <!-- function window_open() { window.open('sub.php',null,'width=640, height=480, scrollbars=yes') }; //--> </script> </head> <body> <form action="index.php" method="post" name="form00" id="form00"> <a onclick="window_open()" href="javascript:void(0)">子ウィンドウを開く</a> <br /> 値が渡せます <input type="text" name="text00" value="" readonly="readonly" /> <br /> 値が渡せません <input type="text" name="data[text02]" value="" readonly="readonly" /> </form> </body> 【sub.php(子ウィンドウ)】 <script type="text/javascript"> <!-- function Set() { window.opener.document.form00.text00.value=document.form01.text01.value; window.opener.document.form00.data[text02].value=document.form01.text01.value; window.close(); } //--> </script> </head> <body> <form action="index.php" method="post" name="form01" id="form01"> <input type="text" name="text01" /> <input type="button" onclick="Set()" value="値をセット" /> </form> <?php /* $link=mysql_connect('localhost', 'データベースユーザ名', 'データベースパスワード名'); mysql_select_db('データベース名', $link); $query=mysql_query("SELECT nm_master FROM master_db WHERE id=2", $link); $tmp=""; while ($row=mysql_fetch_array($query)) { $tmp .= $row["nm_master"]; } echo $tmp; mysql_close($link); */ ?> </body> 【データベース:master_db】 フィールド名:(`id`, `nm_master`) (1, 'あいうえお'), (2, 'かきくけこ'); 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • ASP.NET2.0 GridViewのページャー設定について

    お世話になります。 現在VS2005のASP.NETを学習しております。 GridViewコントロールのページャー設定について質問があります。 500レコード程のデータを1ページに10件ずつ表示しようと思い、 GridViewコントロールのPagerSettingsプロパティのVisibleをTrueに設定しました。 それだけでテーブル下にページ番号リンクが表示され、とても簡単で感動しました。 その後、同じくPagerSettingsプロパティのModeをNumericからNextPreviousに変更するなど、いろいろ試していました。 そこで気づいたのですが、そのモードの中にFirstLastとNumericが一緒になったものはあるのですが、 NextPreviousとNumericが一緒になったモードがありません。 冷静に考えると現在のページ番号の両隣のリンクを押せばいいだけなのですが、 頑固な方がどうしてもページ番号と前へ・次へボタンを一緒にしてくれと頼まれた場合、 そのようにカスタマイズすることは可能なのでしょうか? また可能な場合、どのようにすれば実現できるのでしょうか? 知っている方がいたら、どうぞ宜しくお願いします。

  • GridViewで特定のカラムでだけの操作

    現在、VB.net2010で開発しています。 画面上に、GridViewを設置し、顧客の一覧を表示しています。 ある特定のカラムでダブルクリックした時にのみ、その顧客のマスタ画面を開きたいと思っています。 現在はセル上のどのカラムでも一覧が開いてしまっていますが、特定のカラムでだけにしたいのですが方法がわかりません。 例 コード 顧客名      住所       TEL    売上額 00001 ABCD      ああああ    03-111 5,000 00002 EFGH      いいいい    03-222 10,000 ↑ コード列でのみダブルクリックでフォームを開く どのようにすれば、特定のカラムでのみの操作が行えるか教えて下さい。

  • JavaScriptをURLから直接実行したい

    JavaScriptの関数として呼び出しているリンクを、直接URLアドレスから引数として値を代入して呼びしたいのですが、どうすればよろしいでしょうか? ---実際のコード--- hoge.jpsの中身 ↓JavaScriptの関数部分 <script type="text/javascript"> <!-- function searchSubmit(no) { var f = document.forms["search"] ; f.cat.value = '●●'; f.no.value = no; f.submit(); } //--> </script> ↓上の関数を呼び出している実際のページの <a href="javascript:searchSubmit('▲▲▲');"> ------------------- http://www.hogehoge.jp/hoge.jps?cat=●●&no=▲▲▲ としてブラウザーのアドレスバーに入力しても、真っ白なページになるだけで結果が表示されません。 URLに引数として記入しても、JavaScriptの方には値は代入されないのでしょうか?

  • Javascriptの値をJavaへ渡す方法

    JSPからJavascriptで処理後の値を、サーブレットへ渡す方法を教えて頂きたいです。 登録ボタンを押したあと、登録確認アラートが表示されるのですが、 同じ(登録ボタン押下の)タイミングでJavascriptで処理を実行し、 その値をjavaへ渡したいと思っています。 具体的には、 var aaa = a+b; <% aBean.setA(%>'aaa'<%); %> Javascriptで取得した「aaa」をJavaの引数として渡す方法を教えて頂けませんでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • GridViewにグループ化して表示させたい

    ASP.NETの勉強のためにチームのメンバーを管理する ページを作っています。 VisualWebDeveloper2008のVBで作っています。 DBにはチーム名とチームの所属メンバーとメンバー一覧の3テーブルがあります。 これらをJOINしてGridViewに表示させたいと思います。 検索結果ではAチームに3人いる場合、3レコード取得されます。 画面に表示させるときには1レコードでメンバーの列だけ3行にしたいと思います。 Templateを指定するとできそうな気がするのですが、メンバーを検索するデータソースの条件にその行のチームコードを指定する方法が分かりません。 よろしくお願いします。