如下所示,我想在e.Row.Cells[i].Attributes.Add("onclick", "alert('行:" + e.Row.RowIndex + " 列:" + i + "')")这个单击事件中获取e.Row.RowIndex和i这两个值,本来想通过session来获取的,但是不懂如何写,求大侠帮助。js是可以alert出行号和列号的,我就是想把行号和列号传到另外的页面,怎么办呢,有什么方法可以实现?JavaScriptC#session

解决方案 »

  1.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    for (int i = 0; i < e.Row.Cells.Count; i++)
                    {
                      e.Row.Cells[i].Attributes.Add("onclick", "alert('行:" + e.Row.RowIndex + " 列:" + i + "')");
                        e.Row.Cells[i].Attributes.Add("onclick", "javascript:<%=Session["hang"] = e.Row.RowIndex,Session["lie"] = i;%>");
                        Session["hang"] = e.Row.RowIndex;
                        Session["lie"] = i;
                    }  
                }  
            }我就想用这种session的方法来获取,但是并不管用
      

  2.   

    另外的页面  是一个 链接地址啊 
    通过url传参 就好啊 
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
       if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    for (int i = 0; i < e.Row.Cells.Count; i++)
                    {
                        e.Row.Cells[i].Attributes.Add("onclick", "window.open('test.html?row=" + e.Row.RowIndex + "&cell="+i.ToString()+"','_blank')");
                    }  
                }  
    }
    用session 是不行的
      Session["hang"] = e.Row.RowIndex;
                        Session["lie"] = i;
    上面只有一个最后一个值
      

  3.   

    确实是这样的,session只能去最后一个值。可是我单击的时候并不像跳去其他页面,所以,通过URL传参不符合我的要求。我试过URL传参了,URL完全可以传,可是我不想跳转。最好是直接可以获取  i   和 e.Row.RowIndex  这两个参数,我在另外一个aspx.cs 文件中需要获取这两个参数,还有其他办法吗,兄弟,帮帮忙,这问题困扰我好几天了,实在是想不出还要其他的办法。隐藏域不懂有没有用
      

  4.   

    确实是这样的,session只能去最后一个值。可是我单击的时候并不像跳去其他页面,所以,通过URL传参不符合我的要求。我试过URL传参了,URL完全可以传,可是我不想跳转。最好是直接可以获取  i   和 e.Row.RowIndex  这两个参数,我在另外一个aspx.cs 文件中需要获取这两个参数,还有其他办法吗,兄弟,帮帮忙,这问题困扰我好几天了,实在是想不出还要其他的办法。隐藏域不懂有没有用
    那楼主怎样进入另外的 那个aspx 呢?
    可以把你要操作的逻辑说下不
      

  5.   

    我单击的时候是可以获取行号和列号的,也就是  i  和 e.Row.RowIndex  这两个参数。alert的语句如下:
     e.Row.Cells[i].Attributes.Add("onclick", "alert('行:" + e.Row.RowIndex + " 列:" + i + "')");,效果如下图:
      

  6.   

    进入另一个页面我是通过JS来进去的,那个URL不能传递参数,就卡在这里了,所以想通过后台来获取参数,方便的话,加我QQ帮一下吧,真的困扰我好久了,我QQ1204351172
      

  7.   


    那就这样 
       e.Row.Cells[i].Attributes.Add("onclick", "changeValue('"+e.Row.RowIndex+"','"+i.ToString()+"')");
     changeValue 方法中可以是 
    1、更改页面上两个隐藏域的值,然后再你跳转的js方法中去获取这两个隐藏域的值 把行和列通过url参数传递
    2、或是此方法中 将 当前行列存入 cookie ,另一个页面通过cookie来获取行和列
      

  8.   


    那就这样 
       e.Row.Cells[i].Attributes.Add("onclick", "changeValue('"+e.Row.RowIndex+"','"+i.ToString()+"')");
     changeValue 方法中可以是 
    1、更改页面上两个隐藏域的值,然后再你跳转的js方法中去获取这两个隐藏域的值 把行和列通过url参数传递
    2、或是此方法中 将 当前行列存入 cookie ,另一个页面通过cookie来获取行和列怎样将当前行列存入cookie呢,还有,怎么在.aspx.cs文件中写JS代码啊