如何在WebForm的DataGrid中双击一行,得到该行的数据,并返回上级页面?谢谢。

ILoveProgramer 2004-08-18 03:17:34
如题所述,相信大家在开发中也会遇到这样的问题,不知大家怎么解决的。把数据返回上级页面好说,可怎么通过双击得到这一行的数据呢?
...全文
193 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyworth 2004-08-19
  • 打赏
  • 举报
回复
在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
}
  • 打赏
  • 举报
回复
好贴,关注!
codeangel 2004-08-19
  • 打赏
  • 举报
回复
同意 xrll()
magiccoder 2004-08-19
  • 打赏
  • 举报
回复
同意楼上的!!!
xrll 2004-08-19
  • 打赏
  • 举报
回复
window.parent.returnValue = arr;
window.parent.close(); ====>
window.returnValue = arr;
window.close();
xrll 2004-08-19
  • 打赏
  • 举报
回复
用window.showModalDialog打开新窗口,点击DataGrid中的行传值并关闭此窗口:
在itemdatabound事件中
e.Item.Attributes.Add("ondblClick","javascript:getvalue(this.cells[1].innerText,this.cells[2].innerText);");
客户端脚本
<script>
function getvalue(sValue1,sValue2)
{
var arr = new Array();
arr["v1"] = sValue1;
arr["v2"] = sValue2;
window.parent.returnValue = arr;
window.parent.close();
}
</script>

vzxq 2004-08-19
  • 打赏
  • 举报
回复
study
ILoveProgramer 2004-08-19
  • 打赏
  • 举报
回复
up
ILoveProgramer 2004-08-18
  • 打赏
  • 举报
回复
to wxlada(绿茶):
你说的“在Grid的ItemTemplate里写表格,表格ID动态绑定个id值”我不太明白,是不是在ItemTemplate里再放个table,然后在其中动态绑定一个id值,此id值就是那些纪录的id?

aquariusdeng 2004-08-18
  • 打赏
  • 举报
回复
关于选中DataGrid的列,我是用grid.htc来做的
将grid.htc附加到datagrid控件上
点击之后做的操作可写在SelectedIndexChanged事件里也可以在itemcommand事件里写
要实现点击(只用点击,不需要双击)任何列都能执行itemcommand的功能
需要在datagrid最前面添加一个选择按钮的列(你可以设该列的页眉和文本为空)
(如果想要该htc和使用例子,可mail至dcn103@163.com)

不用htc的话,可以在DataGrid里加一个选择按钮列,将你的双击某行变成点击选择按钮即可
代码可写在SelectedIndexChanged事件里

至于数据传回上级页面,可以使用页面Request的方式,形如:
this.Response.Write("<script>window.returnValue='0';\n window.parent.close();\n window.opener.location.href=window.opener.location.href"+"+'?name="+name1+"';</script>");
问号后是你要的参数
然后在opener页面里reguest
string usrname = this.Request["name"] ;即可
当然也可以使用Session之类的放你要传递的参数
rickjelly2004 2004-08-18
  • 打赏
  • 举报
回复
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
Dim item As DataGridItem

If (e.Item.ItemType = ListItemType.Header) Then
Dim sw As String
sw = CType(e.Item.FindControl("Button3"), Button).Text
End If
If e.Item.ItemType = ListItemType.Item Or _
e.Item.ItemType = ListItemType.AlternatingItem Or _
e.Item.ItemType = ListItemType.SelectedItem Then
e.Item.Attributes.Add("ondblclick", "javascript:return doublecl('" & e.Item.Cells(1).Text & "');")
End If
End Sub
wxlada 2004-08-18
  • 打赏
  • 举报
回复
这里,如果你想传给前一页的话。你可以在我如上写的函数中这么做

function test(m)
{
//第一个字段的值
var aa= document.all("td0"+m).innerText;
//第二个字段的值,当然,表格里也要绑定所需要的值
var bb = document.all("td1"+m).innerText;
window.ReturnValue = aa+"|"+bb;
window.close();
}

然后在母页里用模式窗口打开这个页就可以获得返回值了
wjh6of6agriculture 2004-08-18
  • 打赏
  • 举报
回复
我懂楼主的意思了,我们做的物资系统就有这样的功能,但是用ASP写的
wxlada 2004-08-18
  • 打赏
  • 举报
回复
在Grid的ItemTemplate里写表格,表格ID动态绑定个id值

如<td id='td0<%#DataBinder.Eval(Container.DataItem, "id")%>' ondblclick="test('<%#DataBinder.Eval(Container.DataItem, "id")%>')">

js:

function test(m)
{
alert(document.all("td0"+m).innerText);
}

ILoveProgramer 2004-08-18
  • 打赏
  • 举报
回复
谢谢。我的意思是:

在一个页面上,点一个按钮,弹出一个新的页面,新的页面上有一个DataGrid,且有N条纪录,
我在其中的一条纪录上双击DataGrid,则取出该行纪录的各个子段值,把这些子段值再返回给
前一个页面。

不知我说清楚了没有?谢谢大家。
fangbuge 2004-08-18
  • 打赏
  • 举报
回复
为什么要双击呢?使用连接方式不行么?

一般都是使用带参连接方式打开它的上一页。
andrawsky 2004-08-18
  • 打赏
  • 举报
回复
不理界你的意思
帮你顶
ILoveProgramer 2004-08-18
  • 打赏
  • 举报
回复
谢谢2002pine(我爱你江南的雪儿)的回复,我想要实现的是在本页面直接取出该行的字段值,而不用弹出新的页面,能做到吗?

希望大家继续关注。谢谢。
2002pine 2004-08-18
  • 打赏
  • 举报
回复
在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧