双击DataGrid后怎么取值和传值?

Andrewdavid 2016-09-12 11:14:27
各位老师,我在Default.aspx页面放了个javascript:
<head runat="server">
<title></title>
<script type="text/javascript">
function SelectedIndexChanged()
{event.cancelBubble=true;
var the_obj = event.srcElement;
if(the_obj.tagName.toLowerCase() != "table" && the_obj.tagName.toLowerCase() != "tbody" && the_obj.tagName.toLowerCase() != "tr")
{cur_row = the_obj.parentElement.rowIndex;
if(cur_row!=0)
{ __doPostBack("GridView1",cur_row);
}
}
}
</script>
</head>
和一个DataGrid:
<div class="DataGrid" style="width:1261px;height:999px;margin:auto;position:relative;">
<asp:GridView onclick="javascript:SelectedIndexChanged()" ID="GridView1" runat="server" Width="1260px" Font-Size="Small" OnRowDataBound="GridView1_RowDataBound" EnableModelValidation="True" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical">
<AlternatingRowStyle BackColor="White" />
<FooterStyle BackColor="#CCCC99" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" /> <%--6B696B列标题--%>
<PagerStyle BackColor="#E6F5FA" ForeColor="Black" HorizontalAlign="Right" />
<RowStyle BackColor="#E6F5FA" />
<SelectedRowStyle BackColor="#E6F5FC" ForeColor="Black" /><%-- CE5D5A第一行--%>
</asp:GridView>
</div>
然后在后台调用:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string url = "card.aspx?ID=" + e.Row.Cells[1].Text;
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#F7F7DE'");//当鼠标停留时更改背景色00A9FF
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c"); //当鼠标移开时还原背景色
//e.Row.Attributes["style"] = "Cursor:hand";//设置悬浮鼠标指针形状为"小手"
// e.Row.Attributes.Add("OnDblClick", "window.open('" + url + "','', 'alwaysRaised=100,dependent=1,resizable=0,scrollbars,width=900,height=1200')");
e.Row.Attributes.Add("OnDblClick", "SelectedIndexChanged('"+e.Row.Cells[1].Text+"')");
}
}
但现在我不知道取值成功了没有,我的最终目的是把双击选中的行的每一列值赋给相应的变量,然后传递给card.aspx用,最好用 // e.Row.Attributes.Add("OnDblClick", "window.open('" + url + "','', 'alwaysRaised=100,的形式打开card.aspx
请各位老师教教我怎么做!
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_31302759 2016-09-21
  • 打赏
  • 举报
回复
事件只需要获取选中的行就好了吧
Andrewdavid 2016-09-14
  • 打赏
  • 举报
回复
引用 1 楼 andywangguanxi 的回复:
你不是在URL里面用查询参数传值过去了吗?在card.aspx.cs的load事件里面用Request.QueryString["ID"]来获取就行了
我给了你180分????
Andrewdavid 2016-09-13
  • 打赏
  • 举报
回复
引用 3 楼 FoxDave 的回复:
用js拼字符串传到后台再拆
老师,在后台protected void GridView1_RowDataBound里怎么调用我写的javascript函数SelectedIndexChanged() 将e.Row.Cells[1].Text的值赋给一个string变量
Justin-Liu 2016-09-13
  • 打赏
  • 举报
回复
用js拼字符串传到后台再拆
Andrewdavid 2016-09-13
  • 打赏
  • 举报
回复
引用 1 楼 andywangguanxi 的回复:
你不是在URL里面用查询参数传值过去了吗?在card.aspx.cs的load事件里面用Request.QueryString["ID"]来获取就行了
但这样只能传一个值过去,DataGrid1里有7个列,每个都要传过去
EdsionWang 2016-09-13
  • 打赏
  • 举报
回复
你不是在URL里面用查询参数传值过去了吗?在card.aspx.cs的load事件里面用Request.QueryString["ID"]来获取就行了

62,046

社区成员

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

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

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

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