我想减少这些if else语句。我如何继续?我在javascript中使用函数来过滤显示devExpress gridView中的数据。 我想把它们放在很多或者一个功能中。任何一个都可以帮助我?如何减少if/else语句Javascript
function OnSelectClient()
{
var clientNameFilter = $("#idInputSearchClient").val();
var recordNameFilter = $("#idInputSearchDossier").val();
var StartDateFromFilter = StartDateFrom.GetText();
var StartDateToFilter = StartDateTo.GetText();
var ConfirmationDateFromFilter = ConfirmationDateFrom.GetText();
var ConfirmationDateToFilter = ConfirmationDateTo.GetText();
if (clientNameFilter != "" && recordNameFilter != "" && StartDateFromFilter != "" && StartDateToFilter != "" && ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "")
{
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([TripCode] = '" + recordNameFilter + "') And ([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#) And ([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#)");
}
else if (clientNameFilter != "" && recordNameFilter != "" && ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([TripCode] = '" + recordNameFilter + "')And ([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#)");
}
else if (clientNameFilter != "" && StartDateFromFilter != "" && StartDateToFilter != "" && ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#) And ([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#)");
}
else if (clientNameFilter != "" && recordNameFilter != "" && StartDateFromFilter != "" && StartDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([TripCode] = '" + recordNameFilter + "') And ([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#)");
}
else if (clientNameFilter != "" && StartDateFromFilter != "" && StartDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#)");
}
else if (clientNameFilter != "" && ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#)");
}
else if (recordNameFilter != "" && ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([TripCode] = '" + recordNameFilter + "') And ([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#)");
}
else if (recordNameFilter != "" && StartDateFromFilter != "" && StartDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([TripCode] = '" + recordNameFilter + "') And ([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#)");
}
else if (ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "" && StartDateFromFilter != "" && StartDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#) And ([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#)");
}
else if (clientNameFilter != "" && recordNameFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ClientName] = '" + clientNameFilter + "') And ([TripCode] = '" + recordNameFilter + "')");
}
else if (clientNameFilter != "") {
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.AutoFilterByColumn("ClientName", clientNameFilter);
}
else if (StartDateFromFilter != "" && StartDateToFilter != "")
{
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([StartDate] >= #" + StartDateFromFilter + "#) And ([StartDate] <= #" + StartDateToFilter + "#)");
}
else if (ConfirmationDateFromFilter != "" && ConfirmationDateToFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("([ConfirmationDate] >= #" + ConfirmationDateFromFilter + "#) And ([ConfirmationDate] <= #" + ConfirmationDateToFilter + "#)");
}
else if (recordNameFilter != "") {
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", recordNameFilter);
}
else
{
gvBatchBilling.AutoFilterByColumn("ClientName", null);
gvBatchBilling.AutoFilterByColumn("TripCode", null);
gvBatchBilling.ApplyFilter("");
}
}
如果代码是这样的工作问题,更好的问问http://codereview.stackexchange.com/ – charlietfl