首页 新闻 赞助 找找看

DataGrid 中用JS去实现的一个常见问题!

0
[已解决问题] 解决于 2009-11-16 10:00

DataGrid中我用第一列加了一列radionbutton(客户端的),然后向通过JS实现通过选中的radiobutton来获取该行的其他列元素,主要是找ID列的元素,但我是在用户控件里做的,因此数据源是不确定的,也就是说ID所在的列是不确定的,所以只要能根据第几列来找到相应元素就可以,这个要怎么实现的?(假设ID的所在的列的列数是已知的)

死神的背影的主页 死神的背影 | 小虾三级 | 园豆:667
提问于:2009-11-13 10:45
< >
分享
最佳答案
0

JQUERY

 $("#GridView1").find("tr:not(:first)").find("td:eq(1)").find("input[type=radio]").click(function() 
{
var tr=$(this).parent().parent();
var td1=tr.find("td:eq(1)"); //第一行
var td2=tr.find("td:eq(2)"); //第地2行
});

 

 

 

Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>woody test</title>
<script language="javascript" type="text/javascript" src="JS/jquery-1.3.2.min.js"></script>
<script language="javascript" type="text/javascript">
$(document.body).ready(
function()
{
$(
"#DataGrid1").find("tr").find("td:eq(0)").find("input[type=radio]").click(function()
{
var td1=$(this).parent();
var tr=td1.parent();
var td2=tr.find("td:eq(1)");
alert(td2.html());
});
});

</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid style="Z-INDEX: 101; POSITION: absolute; TOP: 88px; LEFT: 168px" id="DataGrid1"
runat
="server">
<Columns>
<asp:TemplateColumn HeaderText="按鈕">
<HeaderStyle Wrap="False"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
<ItemTemplate>
<input type="radio" value="選擇我" runat="server" id='aa' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>

 


            
woody.wu | 老鸟四级 |园豆:3621 | 2009-11-13 10:51
能不能稍微具体点,JQUERY内容很多啊,不好找
死神的背影 | 园豆:667 (小虾三级) | 2009-11-13 10:53
$("#DataGrid1").find("tr:not(:first)").find("td")--這裡就是所有的該行的元素
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-13 11:06
@woody.wu:麻烦再追问一句,这段话是加在哪里的?
死神的背影 | 园豆:667 (小虾三级) | 2009-11-13 11:37
@死神的背影:看看
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-13 12:57
@woody.wu:非常感谢,写的很详细,不过我拿过来没有反应,那个加载事件都进不去,不知道是什么问题,是不是因为我的这个东西是写在用户控件中的缘故?
死神的背影 | 园豆:667 (小虾三级) | 2009-11-13 13:50
@死神的背影: 這隻是客戶端事件的。 再者,UserControl對應的客戶端在ID是會變的。
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-13 14:04
@死神的背影:能否看看你怎麼弄的?
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-13 14:05
@woody.wu: <%@ Control Language="c#" AutoEventWireup="false" Codebehind="MyWUC.ascx.cs" Inherits="MyWork.WebUserControl.MyWUC" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%> <script type="text/javascript"> $(document.body).ready(function() { alert(); $("dgData").find("tr").find("td:eq(0)").find("input[type=radio]").click(function() { var td1=$(this).parent(); var tr=td1.parent(); var td2=tr.find("td:eq(1)"); alert(td2); }); }); </script> <div><br> <asp:datagrid id="dgData" PageSize="3" runat="server"> <Columns> <asp:TemplateColumn HeaderText="选择"> <ItemTemplate> <INPUT type="radio" value="选择" name="radioSelect"> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid><br> <asp:button id="btnPrev" Runat="server" Text="上一页"></asp:button>&nbsp;&nbsp;&nbsp;<asp:label id="lblCurrentPage" Runat="server"></asp:label> &nbsp;&nbsp;&nbsp; <asp:button id="btnNext" Runat="server" Text="下一页"></asp:button></div> 我把那段JQuery脚本放到调用这个用户控件的页面也没反应,而且再没有其他的onload事件了啊
死神的背影 | 园豆:667 (小虾三级) | 2009-11-13 14:17
@死神的背影: 把代碼手動輸入,不要COPY。好象從這html裡COPY過去的代碼會有問題.
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-13 15:23
其他回答(2)
0

搞不懂你为什么要自己加一列呢,自找麻烦。加一个模板列多方便。

Rambo'Ma | 园豆:215 (菜鸟二级) | 2009-11-13 10:55
0

动态设置GridView的DataKeyNames属性不能实现你需要的功能吗?

没头脑 | 园豆:205 (菜鸟二级) | 2009-11-13 19:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册