![](/img/trans.png)
[英]Get value from gridview column that has radio button using javascript in asp.net c#
[英]asp.net C# get selected row from gridview using javascript function
I created a javascript function to get the selected row from a gridview and it is working fine when I use BoundField
DataField
, but when I use label
inside the ItemTemplate
in the gridview it returns a value but with html codes.
例如,当我使用BoundField
DataField
我得到这个:
user name
当我在ItemTemplate
中使用 label 时,我得到了这个:
<span id="gvCustomers_Label4_6">user name</span>
这是我的代码:
<script type ="text/javascript" >
function GetSelectedRow(UserLink) {
var row = UserLink.parentNode.parentNode;
var Userid = row.cells[1].innerHTML;
alert(Userid);
return false;
}
</script>
这是 gridview 代码:
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="OnPaging">
<Columns>
<asp:TemplateField HeaderText="user name">
<ItemTemplate>
<asp:Label ID="Label4" Text='<%# Eval("user_name") %>' runat ="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="ButtonSearch" runat="server" ClientIDMode="Static" Text='select' OnClientClick = "return GetSelectedRow(this)" CommandArgument ='<%# Bind("user_name") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
如果单元格中有多个跨度或其他元素,则可以执行此操作
row.cells[1].getElementsByTagName("span")[0].innerHTML;
您需要检查子节点,如果存在,则从中获取值。
像这样的东西:
<script type ="text/javascript" >
function GetSelectedRow(UserLink) {
var row = UserLink.parentNode.parentNode;
var Userid;
if(row.cells[1].firstChild) {
Userid = row.cells[1].firstChild.innerHTML;
} else {
Userid = row.cells[1].innerHTML;
}
alert(Userid);
return false;
}
</script>
我没有测试过这段代码,但它应该会给你这个想法。 根据需要对其进行修改。
此代码示例做了一些可能会破坏它的假设,因此可能需要更健壮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.