gridview控件获取行值
单击行获取已显示gridview控件该行某列的值,网上说datarowcommand事件,找了半天没找到在哪
就是给gridview添加一个行点击事件,点击后获取该行的索引和某列的值,且只显示有数据的列,比如:学号,姓名,其他的不显示 展开
aspx:
<asp:GridView ID="GridView1" runat="server" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" CommandName="getID" CommandArgument='<%#Eval("id") %>' runat="server">获取ID</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
cs:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "getID")//有多个command的时候便于区别
{
string s_id = e.CommandArgument.ToString();//这里得到行绑定的数据列"ID"
//...下面是处理代码
}
}
1。前台JS
<body>
<form id="form1" runat="server">
<div id="divMain">
<asp:HiddenField ID="hd" runat="server" />
<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="false"
onrowdatabound="gv1_RowDataBound" />
</div>
</form>
<script type="text/javascript" >
var hd = document.getElementById("divMain").firstChild;
function setValue(val) {
hd.value = val;
//alert(hd.value);
}
</script>
</body>
2。后台方法
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string val = DataBinder.Eval(e.Row.DataItem, "HM").ToString();
e.Row.Attributes.Add("onclick", "setValue(" + val + ")");
}
}
3。当需要使用选中HM的值的时候,取HiddenField的值就OK
i
=
DataGridView.CurrentRow.Index可以获取当前选中的行,如果需要哪个单元格或者是整行的数据还需要自己进行处理DataGridView.Rows[??].cells[??].value.Tostring();