用的vs2005,sqlserver2005aspx中初始gridview如下:<asp:GridView ID="datagrid" runat="server" AutoGeneratecolums="False" OnSelectedIndexChanged="datagrid_SelectedIndexChanged">
  <Columns>
       <asp:CommandField ShowSelectButton="True">
       <asp:BoundField DataField="Fname" HeaderText="First Name" ReadOnly="True" />
       <asp:BoundField DataField="Mname" HeaderText="Middle Name" ReadOnly="True" />
       <asp:BoundField DataField="Lname" HeaderText="Last Name" ReadOnly="True" />
  </Columns>
  <SelectedRowStyle BackColor="#FFE0C0">
</asp:GridView>cs中:protected void beginsearchClick(object sender, EventArgs e)
{//通过点击该按钮获得指定数据,此时gridview显示没有问题
    String sql= "use student select Fname,Mname,Lname from StudentInformation where ID = '"+textbox.Text+"'";
    DataSet ds=db.GridData(sql)//db.GridData是在其他类中定义的读取database的方法
    datagrid.DataSource=ds;
    datagrid.DataBind();
}protected void datagrid_SelectedIndexChanged(object sender, EventArgs e)
{//点击select没有反应
    msg.Text = datagrid.SelectedRow.Cells[2].Text;
}想做出的效果就是通过每行前面的select选定gridview中的一行,然后将该行指定的列读取到特定的textbox中,找到一个例子如下:
http://authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/demos/GridViewautogenerateselectbutton.aspx现在的问题是:上面例子中,点击select页面刷新,但是自己的code点击select没有反应,页面无法刷新,selectrowstyle也无法体现出来,请问是什么问题?
(之前搜索了很多相关的帖子,没有找到确切的回答,望各位不吝赐教,多谢!)

解决方案 »

  1.   

    在自己的code里,点击自带的select按钮,页面显示javascript:_doPostBack('datagrid','Select$0')错误.
      

  2.   

    你的页面Page_Load中是否是if(!IsPostBack)
    {
    绑定GridView数据
    }
      

  3.   

    没有,数据是通过beginsearchClick绑定的.现在点击gridview自带的select不刷新页面,backcolor也体现不出来.
      

  4.   

    Page_Load里面什么都没写,试过了很多方法,比如将数据绑定加入到Page_Load的if (!Page.IsPostBack)里,但是点击gridview自带的select还是没反应,页面也没有回传
      

  5.   

    protected void datagrid_SelectedIndexChanged(object sender, EventArgs e)
    {//点击select没有反应
        msg.Text = datagrid.SelectedRow.Cells[2].Text;
       改为:msg.Text = datagrid.Rows[e.Index].Cells[2].Text;试一下,好像是这样,
    }
      

  6.   

    多谢LS诸位的回复,但现在问题是点击select页面根本不刷新,更谈不上从对应cell中取值了.不知是否有朋友也碰到过类似情况.
      

  7.   

    你是不是用了ajax的那个updatepanerl了
    如果是那么给text也加个
      

  8.   

    回LS,没用updatapanel,就是建立gridview,用它自带的select都不能选择行
      

  9.   

    你设断点 看看 看text得到值没?
      

  10.   

    没有得到值,得到的话按照
    protected void datagrid_SelectedIndexChanged(object sender, EventArgs e)
    {//点击select没有反应
        msg.Text = datagrid.SelectedRow.Cells[2].Text;
    }
    应该会显示在msg里头吧