我想在点击DATAGRID的某一单元格时,得到该单元格的值,并希望能引用该行的各个单元格的值,将其写入Session,以便其他页面上用,用C#怎么写呢?初学asp.net,请大家指教。谢谢!

解决方案 »

  1.   

    并希望能引用该行的各个单元格的值,将其写入Session
    ------------------
    你这个要求,就必须提交到服务端才可以进行,但取得当前点击的值,最好是在客户端进行,两者是矛盾的,你自己看看。下面写出实现过程1.取得当前点击的单元格的值。
    必须在数据绑定之后,对每一个单元格做脚本处理。
    for(int i=0;i<this.datagrid1.Items.Count;i++)
    {
    for(int j=0;j<this.Datagrid1.Columns.Count;j++)
    {
    this.datagrid1.Items[i].Cells[j].Attributes.Add("onclick","alert('" + this.datagrid1.Items[i].Cells[j].Text + "'");
    }
    }
    如上,当点击某个单元格时,即会弹出当前单元格内的值。2.获取该行的各个单元格值
    此操作,必须在点击行的时候,提交该行,为了达到提交的目的,你必须在该行中,放置一个按钮,并且,使此按钮隐藏,点击行时,通过脚本,触发此按钮进行点击。假设此按钮的ID=button1,并且此按钮的CommandName=Edit,而且对edit事件已经做了代码处理
    在datagrid绑定之后,如下:
    for(int i=0;i<this.datagrid1.Items.Count;i++)
    {
    Button mybut = (Button)this.datagrid1.Items.FindControls("button1");
    //隐藏此按钮
    mybut.Style.Add("display","none");
    //添加每一行的事件
    this.datagrid1.Items.Attributes.Add("onclick","document.all('" + mybut.ClientID + "').click();");
    }然后在edit事件里面如下写:
    //求取各列的值
    txt1 = this.datagrid1.Items[e.Item.ItemIndex].Cells[0].Text;
    txt2 = this.datagrid1.Items[e.Item.ItemIndex].Cells[2].Text;
    ......