Aar*_*ron 4 asp.net telerik radgrid
我正在尝试为我的RadGrid添加自定义过滤器.我有一个专栏,vendNum,我想让用户使用以逗号分隔的列表过滤多个vendNum.基本上,我想要与SQL中的"in"语句相同的功能(其中vendNum在(X,Y,Z)中).
我按照本网站上的教程,提出了以下代码放在我的RadGrid1_ItemCommand事件中.
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.FilterCommandName)
{
Pair filterPair = (Pair)e.CommandArgument;
switch (filterPair.Second.ToString())
{
case "vendNum":
TextBox tbPattern = (e.Item as GridFilteringItem)["vendNum"].Controls[0] as TextBox;
if (tbPattern.Text.Contains(","))
{
string[] values = tbPattern.Text.Split(',');
if (values.Length >= 2)
{
e.Canceled = true;
StringBuilder newFilter = new StringBuilder();
for (int i = 0; i < values.Length; i++)
{
if (i == values.Length - 1)
newFilter.Append("[vendNum] = " + values[i]);
else
newFilter.Append("[vendNum] = " + values[i] + " OR ");
}
if (RadGrid1.MasterTableView.FilterExpression == "")
RadGrid1.MasterTableView.FilterExpression = newFilter.ToString();
else
RadGrid1.MasterTableView.FilterExpression = "((" + RadGrid1.MasterTableView.FilterExpression + ") AND (" + newFilter.ToString() + "))";
RadGrid1.Rebind();
}
}
break;
default:
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用逗号分隔列表进行过滤时,执行此操作会不断给出错误"Expression Expected".我仍然可以过滤一个vendNum.我FilterExpression
确实按预期出来了.代码在RadGrid1.Rebind()
声明中失败了.以前有人处理过这个吗?任何帮助是极大的赞赏.
谢谢,
亚伦
忘了编辑这个
我几周前解决了这个问题......我不得不在RadGrid下将"EnableLinqExpressions"属性设置为false.
归档时间: |
|
查看次数: |
11118 次 |
最近记录: |