C# 是否以编程方式更新FilterParameter值?
如何更新已在aspx中定义了筛选器表达式和筛选器参数的SQLDataSource的筛选器参数值?我正在尝试添加alpha寻呼机 代码隐藏C# 是否以编程方式更新FilterParameter值?,c#,asp.net,sqldatasource,C#,Asp.net,Sqldatasource,如何更新已在aspx中定义了筛选器表达式和筛选器参数的SQLDataSource的筛选器参数值?我正在尝试添加alpha寻呼机 代码隐藏 protected void rptFilterUI_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "All") { ClearFilter(); } else { userSou
protected void rptFilterUI_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "All")
{
ClearFilter();
}
else
{
userSource.FilterParameters.Clear();
userSource.FilterParameters[0].DefaultValue = "LOGINID";
userSource.FilterParameters[1].DefaultValue = e.CommandName;
userSource.DataBind();
}
}
ASPX
它使索引超出范围
索引超出范围。必须为非负数且小于集合的大小。
参数名称:索引
FilterParameters是一个集合。因此,这份声明
userSource.FilterParameters.Clear()
…将截断筛选器参数列表。因此,如果您尝试引用空集合的成员,您将得到一个索引超出范围的异常
尝试此操作…在.Clear()之后立即放置以下代码
userSource.FilterParameters.Add(new ControlParameter("test2", "SearchByDropDownList", "SelectedValue"));
userSource.FilterParameters.Add(new ControlParameter("test", "SearchTextBox", "Value"));
userSource.FilterParameters.Add(new ControlParameter("test2", "SearchByDropDownList", "SelectedValue"));
userSource.FilterParameters.Add(new ControlParameter("test", "SearchTextBox", "Value"));