日期:2014-05-20  浏览次数:20351 次

单击时把DataGrid中的某列的值通过Session传出去的问题
我用下面的方法在用户单击DataGrid的时候打开一个新页:
private   void   DataGrid1_ItemDataBound_1(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)
{
e.Item.Attributes.Add   ( "onclick ", "window.open( 'yl.aspx?ID= "+e.Item.Cells   [0].Text   + " ') ");
}
现在我不希望通过url来传值了,我想通过Session来完成:
private   void   DataGrid1_ItemDataBound_1(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)
{
e.Item.Attributes.Add   ( "onclick ", "window.open( 'yl.aspx? ') ");
Session[ "LoginName "]=e.Item.Cells   [0].Text;
}
可是我在另一页接收的时候,发现Session[ "LoginName "]是一个空格符&nbsp,请问这是怎么回事?


------解决方案--------------------
由于邦定时,每行的数据不同,因此,要区分不同的行,需要找到一个关键字。

private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//伪代码
Session[ "key "+数据的键值,如id作为Session的key] = e.Item.Cells[0].Text;
e.Item.Attributes.Add ( "onclick ", "window.open( 'yl.aspx?ID= "+ 数据的键值,如id作为Session的key + " ') ");
}

此外,在获取Session时,需要传递这个关键字才能取到正确的数据,而不至于混淆。


------解决方案--------------------
用单击事件试一下
------解决方案--------------------
建议楼主把e的范围确定一下
判断一下当前e对象是属于交替项,还是编辑项,还是项
------解决方案--------------------
主  题: 单击时把DataGrid中的某列的值通过Session传出去的问题
作  者: byhum (相见不如怀念) Blog
等  级:
信 誉 值: 100
所属社区: .NET技术 ASP.NET
问题点数: 20
回复次数: 12
发表时间: 2007-1-6 9:01:38




我用下面的方法在用户单击DataGrid的时候打开一个新页:
private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
e.Item.Attributes.Add ( "onclick ", "window.open( 'yl.aspx?ID= "+e.Item.Cells [0].Text + " ') ");
}
现在我不希望通过url来传值了,我想通过Session来完成:
private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
e.Item.Attributes.Add ( "onclick ", "window.open( 'yl.aspx? ') ");
Session[ "LoginName "]=e.Item.Cells [0].Text;
}
可是我在另一页接收的时候,发现Session[ "LoginName "]是一个空格符&nbsp,请问这是怎么回事?

=========================================================

把Session[ "LoginName "]=e.Item.Cells [0].Text; 这行代码从ItemDataBound事件中拿出来
放到 command 事件中

没用过datagrid 就用过gridview 见笑了

绑定数据的时候循环执行 那样在循环给session[ "LoginName "]赋值 当然不是你需要的 防到 command 事件中 在点击后 把当前行的 loginName 的值再赋给session