1.页面上使用datagrid控件显示数据集,同时页面上有一html按钮控件,我想点先选中datagrid的某一行(不触发任何事件,就像listbox那样),然后点击这个按钮,在javascript中,把datagrid的这一行数据取出来。目前怎么点击任何一个地方选中某一行的问题已经解决,但怎么用javascript取数据呢?今天搞了一个晚上也没解决。

解决方案 »

  1.   

    datagrid客户端ID MainTable
    var lastRow = null;
    function ClickRow(thisRow)
    {
    lastRow = thisRow;
    }
    function DisplayRow()
    {
    if(lastRow)
    {
    alert(lastRow.children[0].innerText);
    }
    }
      

  2.   

    楼上可否详细点啊?实在是看不懂啊。displayRow()函数在那调用阿?
      

  3.   

    <%@ Page Language="c#" ContentType="text/html" CodeBehind="DataGrid.aspx.cs" AutoEventWireup="false" Inherits="study.DataGrid" %>
    <HTML>
    <HEAD>
    <title>无标题文档</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </HEAD>
    <body>
    <form name="form1" runat="server">
    <asp:datagrid id="myDataGrid" runat="server" AutoGenerateColumns="False" HorizontalAlign="Center"
    CellPadding="3" PageSize="20" AllowPaging="True" BorderColor="#999999">
    <ItemStyle Height="20px"></ItemStyle>
    <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Height="25px"></HeaderStyle>
    <Columns>
    <asp:BoundColumn DataField="kc_id" HeaderText="id号"></asp:BoundColumn>
    <asp:BoundColumn DataField="kc_sh" HeaderText="书号"></asp:BoundColumn>
    <asp:BoundColumn DataField="kc_sm" HeaderText="书名"></asp:BoundColumn>
    <asp:BoundColumn DataField="kc_cbs" HeaderText="出版社"></asp:BoundColumn>
    <asp:BoundColumn DataField="kc_jg" HeaderText="价格" DataFormatString="{0:c2}"></asp:BoundColumn>
    </Columns>
    <PagerStyle NextPageText="2" PrevPageText="1" Mode="NumericPages"></PagerStyle>
    </asp:datagrid></form>
    </body>
    </HTML>
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Configuration;
    namespace study
    {
    /// <summary>
    /// DataGrid 的摘要说明。
    /// </summary>
    public class DataGrid : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataGrid myDataGrid;

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.IsPostBack)
    {
    Data_Load();
    }
    // 在此处放置用户代码以初始化页面
    } private void Data_Load()
    {
    string conn1=ConfigurationSettings.AppSettings["con"];
    string sql="select top 500 kc_id,kc_sh,kc_sm,kc_cbs,kc_jg from kc";
    SqlConnection conn=new SqlConnection(conn1);
    SqlDataAdapter kc=new SqlDataAdapter(sql,conn);
    conn.Open();
    DataSet rs=new DataSet();
    kc.Fill(rs);
    myDataGrid.DataSource=rs;
    myDataGrid.DataBind(); }



    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.myDataGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.myDataGrid_ItemDataBound);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void myDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
      if(e.Item.ItemIndex>=0)   e.Item.Attributes["onmouseover"]="this.bgColor='CCCCCC'";
      e.Item.Attributes["onmouseout"]="this.bgColor='white'";
                  e.Item.Attributes["onclick"]="alert('"+e.Item.Cells[2].Text.ToString()+" ')";
    }
    }
    }