У меня есть раскрывающийся список с использованием jquery «selected», который подключен к базе данных sql, и таблица, также подключенная к той же базе данных. Я хочу отфильтровать таблицу на основе выбранного значения в раскрывающемся списке. Я выполняю фильтрацию таблицы, но проблема в том, что она фильтрует значения на основе каждой ячейки в каждом столбце. Я хочу, чтобы он просто отфильтровывал только первые 2 столбца таблицы. Например, у меня есть ProjectID и ProjectName в раскрывающемся списке, и я хочу фильтровать таблицу только на основе этих значений. Скажем, у меня есть projectID 60 и 60 в другой ячейке таблицы (например, столбец «часы») с projectID 59, прямо сейчас он вернет эту строку с ProjectID 59. Любые указатели очень приветствуются. Вот мой сценарий:
//page load
$(document).ready(function () {
$(".chosen").chosen({
no_results_text: "Nothing found!"
});
displaygrid();
});
//functions
function displaygrid() {
$('#chosenproj').change(function () {
var selection = $(this).val();
$('tbl1')[selection ? 'show' : 'hide']();
if (selection) { // iterate only if `selection` is not empty
$.each($('#tbl1 tbody tr'), function (index, item) {
$(item)[$(item).is(':contains(' + selection + ')') ? 'show' : 'hide']();
});
}
});
};
</script>
Вот моя разметка html:
<div>
<select id = "chosenproj" class = "chosen" runat = "server"
datatextfield = "ProjectFull" datavaluefield = "ProjectID"
style = "width:350px;">
</select>
</div>
<div>
<table id = "tbl1" class = "tblsorter">
<thead>
<tr>
<th>ProjectID</th>
<th>Project Name</th>
<th>TaskDescription</th>
<th>TaskDueDate</th>
<th>StatusDescription</th>
<th>EstimatedHours</th>
<th>SprintDateRange</th>
</tr>
</thead>
<asp:Repeater ID = "rptTasks" runat = "server" EnableViewState = "false">
<HeaderTemplate>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("ProjectID") %></td>
<td><%# Eval("ProjectName") %></td>
<td><%# Eval("TaskDescription") %></td>
<td><%# Eval("TaskDueDate", "{0:d}") %></td>
<td><%# Eval("StatusDescription") %></td>
<td><%# Eval("EstimatedHours") %></td>
<td><%# Eval("SprintDateRange") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
</FooterTemplate>
</asp:Repeater>
</table>
</div>
Код страницы C# за этой ссылкой на мой DBConnection и классы для источника ddl и таблицы:
protected void Page_Load(object sender, EventArgs e)
{
chosenproj.DataSource = ProjectModel.GetProjectList();
chosenproj.DataBind();
rptTasks.DataSource = ProjectModel.TaskList();
rptTasks.DataBind();
}
Я хочу выполнять фильтрацию на стороне клиента, а не на стороне сервера. Это относительно небольшой набор данных, поэтому мы извлекаем все сразу
где ваш запрос
sql DB
?