したがって、SQLテーブルからデータをプルするGridView
「CustomerGridView」と「SqlDataSource1」があります。SqlDataSource
ここで、フィルタリングを追加したかったので、さまざまなオプションを備えたサイドパネルを作成しました。
私の問題は、現在のコードで、月払いの顧客、新規顧客、半年ごとに支払う顧客を選択した場合です。半年ごとまたは月ごとに支払う新規顧客のみを表示するのではなく、基準を満たすアクティブな(新規ではない)顧客を含むこれらすべてのタイプを表示します。
どうすればこれを修正できますか?
かっこなどを試しましたが、まったく役に立ちませんでした。すべての状況に対してifを作成し、各filterexpressionを手動で作成する必要がありますか?
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
SqlDataSource1.FilterExpression = string.Empty;
if (MonthlyCheckBox.Checked)
{
SqlDataSource1.FilterExpression = "[CustomerSubscriptionType]='Monthly'";
}
if (SemiAnnuallyCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += "OR ([CustomerSubscriptionType]='Semi-Annually')";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerSubscriptionType]='Semi-Annually'";
}
}
if (AnnuallyCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += "OR ([CustomerSubscriptionType]='Annually')";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerSubscriptionType]='Annually'";
}
}
if (NewCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " ( OR [CustomerStatus]='Active')";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerStatus]='New'";
}
}
if (ActiveCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " OR [CustomerStatus]='Active'";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerStatus]='Active'";
}
}
if (SuspendedCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " OR [CustomerStatus]='Suspended'";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerStatus]='Suspended'";
}
}
if (ResidentialCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " AND [CustomerType]='Residential' ";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerType]='Residential'";
}
}
if (CommercialCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " AND [CustomerType]='Commercial' ";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerType]='Commercial'";
}
}
if (NotInGroupCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " AND [CustomerGroup]=''";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerGroup]=''";
}
}
if (InGroupCheckBox.Checked)
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " AND [CustomerGroup]<>''";
}
else
{
SqlDataSource1.FilterExpression = "[CustomerGroup]<>''";
}
}
if (GroupDropDownFilter.Text != "Select...")
{
if (!string.IsNullOrEmpty(SqlDataSource1.FilterExpression))
{
SqlDataSource1.FilterExpression += " AND [CustomerGroup]='{0}'";
SqlDataSource1.FilterParameters.Add("@CustomerGroup", GroupDropDownFilter.Text);
}
else
{
SqlDataSource1.FilterExpression = "[CustomerGroup]='{0}'";
SqlDataSource1.FilterParameters.Add("@CustomerGroup", GroupDropDownFilter.Text);
}
}
}