You can use this code to search in gridview without hide header.
$(document).ready(function () {
var rows;
var coldata;
$('#txtSearch').keyup(function () {
$('#<%=AspGrid.ClientID%>').find("tr:gt(0)").hide();
var data = $('#txtSearch').val();
var len = data.length;
if (len > 0) {
var gridHeader = $('#<%=AspGrid.ClientID%>').find('tbody th');
$('#<%=AspGrid.ClientID%>').find('th').each(function (index) {
$('#<%=AspGrid.ClientID%>').find('tbody tr').each(function () {
coldata = $(this).find('td').children().eq(index);
var temp = coldata.text().toUpperCase().indexOf(data.toUpperCase());
if (temp === 0) {
$(this).show();
}
});
});
} else {
$('#<%=AspGrid.ClientID%> tbody tr').show();
}
});
});