DataGridView单击一行可以获得改行的详细信息,但是GridView不能直接单击获取改行信息,需要在绑定数据时,为每一行定义单击事件,功能实现如下:
1.在gridview的RowDataBound()事件中定义某一列的单击事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)//判断单击行是否为数据行
{
DataRowView row = (DataRowView)e.Row.DataItem;
e.Row.ID = GridView1.DataKeys[e.Row.RowIndex]["PKID"].ToString();//PKID为唯一能够标识一条记录的字段
if (e.Row.ID != null && row != null)
{
e.Row.Cells[1].Attributes.Add("id", "billid");
string url = "../revFreight/FreightBillView.aspx?billid=" + e.Row.Cells[3].Text;//第三列为订单号,唯一标识一条记录的键值
e.Row.Cells[1].Attributes.Add("onclick", "openview('" + url + "')");
}
}
}
2.在javascript中定义openview(url)
function openview(url) {
window.open(url, '__scmhubCloseWindow', 'width=950,height=670, top=50,left=50, toolbar=no, menubar=no, scrollbars=no, resizable=yes,location=no, status=no');//打开一个新页面
或者:
window.showModalDialog(url, '__scmhubCloseWindow', 'width=950,height=670, top=50,left=50, toolbar=no, menubar=no, scrollbars=no, resizable=yes,location=no, status=no');//弹出新窗体
}