У меня есть ObjectDataSource, который отлично связывается с моим GridView.
У меня также есть два раскрывающихся списка, которые вызывают функцию ApplyFilterExpression.
Они оба работают независимо, но когда я устанавливаю оба раскрывающихся списка со значениями, я не получаю результатов. Но я ЗНАЮ, что должны быть результаты. Что я здесь не так делаю?
<asp:ObjectDataSource ID="dsLogs" runat="server" SelectMethod="GetDTAll"
TypeName="LogManager.LogRepository"
SelectCountMethod="GetAllCount" >
<SelectParameters>
<asp:Parameter DefaultValue="DESC" Name="sortOrder" Type="String" />
<asp:Parameter DefaultValue="timestamp" Name="orderBy" Type="String" />
<asp:Parameter DefaultValue="1" Name="startRowIndex" Type="Int32" />
<asp:Parameter DefaultValue="1000" Name="maximumRows" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
private void ApplyFilterExpression()
{
dsLogs.FilterExpression = null;
bool hasFilter = false;
if (ddlTypes.SelectedIndex != 0)
{
dsLogs.FilterExpression = "type='" + ddlTypes.SelectedValue + "'";
hasFilter = true;
}
if (ddlUsers.SelectedIndex != 0)
{
if (hasFilter)
{
dsLogs.FilterExpression += " AND username='" + ddlUsers.SelectedValue + "'";
}
else
{
dsLogs.FilterExpression = "username='" + ddlUsers.SelectedValue + "'";
hasFilter = true;
}
}
ViewState["FiltExp"] = (string)dsLogs.FilterExpression;
}