问题
I have a Gridview and textbox which is outside the gridview. I enter some text and filter records from the grid.
Now what I want is, I want to show No Records Found message if there are no matching records for the text inserted.
Below is my code for filtering
<input type="text" id="txtSearchSAP" onkeyup='FilterGrid(this);' class="field-style field-full align-none" maxlength="18" />
JS Code for filter
function FilterGrid(Obj) {
var grid = document.getElementById('MainContent_grdSapDetails');
var terms = Obj.value.toUpperCase();
var cellNr = 0;
var ele;
for (var r = 1; r < grid.rows.length; r++) {
ele = grid.rows[r].cells[cellNr].innerHTML.replace(/<[^>]+>/g, "");
if (ele.toUpperCase().indexOf(terms) >= 0)
grid.rows[r].style.display = '';
else grid.rows[r].style.display = 'none';
}
}
回答1:
In top of your for loop you can check condition and you can add Message like this
function FilterGrid(Obj) {
var grid = document.getElementById('MainContent_grdSapDetails');
var terms = Obj.value.toUpperCase();
var cellNr = 0;
var ele;
if(grid.rows.length >0){
for (var r = 1; r < grid.rows.length; r++) {
ele = grid.rows[r].cells[cellNr].innerHTML.replace(/<[^>]+>/g, "");
if (ele.toUpperCase().indexOf(terms) >= 0)
grid.rows[r].style.display = '';
else grid.rows[r].style.display = 'none';
}
}
else{
alert("No Records Available);
}
}
回答2:
on your markup, set the EmptyDataText property of your GridView
<asp:GridView ID="GridView1" runat="server" EmptyDataText="No Records Found">
<Columns>
......
</Columns>
</GridView>
来源:https://stackoverflow.com/questions/43338571/while-filtering-gridview-from-textbox-show-some-message