private void dg1_SelectedIndexChanged(object sender, System.EventArgs e)
{
for(int s=1;s<dg1.Columns.Count;s++)
{
this.Page.RegisterStartupScript("a","<script>alert('"+dg1.Items[dg1.SelectedIndex].Cells[s].Text.ToString()+"');</script>");
}
}选择后,没有任何的响应
private void dg1_SelectedIndexChanged(object sender, System.EventArgs e)
{
this.Page.RegisterStartupScript("a","<script>alert('"+dg1.Items[dg1.SelectedIndex].Cells[1].Text.ToString()+"');</script>");
}
就能显示出来!!!为什么呀????

解决方案 »

  1.   

    跟踪看看dg1.Columns.Count 等于多少
      

  2.   

    的确如fuchen_yan所说,count只有1
    我的确datagrid列除选择列外,是通过
    for(int i=0;i<checktb2.Columns.Count;i++)
    {
    BoundColumn bc1=new BoundColumn();
    bc1.HeaderText=checktb2.Columns[i].ColumnName.ToString().Trim();
    bc1.DataField=checktb2.Columns[i].ColumnName.ToString().Trim();
    dg1.Columns.Add(bc1);
    }
    dg1.DataSource=checkset.Tables["checktb2"];
    dg1.DataBind();
    动态构建后,再绑定的.那为什么只有1列呢???
    在必须动态构建datagrid列的前提下,应该如何写代码,才能让SelectedIndexChanged
    中分别取到各个cells中的值呢???