DataGrid中我用第一列加了一列radionbutton(客户端的),然后向通过JS实现通过选中的radiobutton来获取该行的其他列元素,主要是找ID列的元素,但我是在用户控件里做的,因此数据源是不确定的,也就是说ID所在的列是不确定的,所以只要能根据第几列来找到相应元素就可以,这个要怎么实现的?(假设ID的所在的列的列数是已知的)
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>
搞不懂你为什么要自己加一列呢,自找麻烦。加一个模板列多方便。
动态设置GridView的DataKeyNames属性不能实现你需要的功能吗?