- ベストアンサー
GridViewとJavascriptの連携
GridViewを使い、明細表示を考えています。 その際、レコードにリンクを設定し、 JavaScriptに連携させたいと考えています。 そこで、レコードのカラムの値を利用しようと考えているのですが、 うまくJavaScriptに引数として渡せません。 何かいい方法はありませんか?
- みんなの回答 (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