2010-04-21 2 views
0

У меня есть DataList и FormView; у них есть отдельные источники данных, хотя они извлекают ту же информацию. У источника данных FormView есть FilterExpression, чтобы вытащить все, что было выбрано в DataList. При первой загрузке SelectedValue в DataList имеет значение NULL (естественно). Я ожидаю, что FilterExpression приведет к нулевым строкам, но это не так. Если я устанавливаю значение DefaultValue равным 0, он делает это, но тогда параметр никогда не будет обновляться, когда я выберу что-то из DataList. Я делаю это неправильно?Использование ControlParameter в FilterParameters, когда свойство равно null

ответ

0

Выключается, (в соответствии с this post) есть ошибка с этим. Решение состоит в том, чтобы присоединить обработчик OnFiltering (я сделал несколько улучшений):

protected void FilteringCheck(Object sender, SqlDataSourceFilteringEventArgs e) 
{ 
    // Make sure there are no null parameters. 
    for (int i = 0; i < e.ParameterValues.Count; i++) 
    { 
     if (e.ParameterValues[i] == null) 
     { 
      switch (((System.Web.UI.WebControls.SqlDataSourceView)sender).FilterParameters[i].Type) 
      { 
       case TypeCode.Int16: 
       case TypeCode.Int32: 
       case TypeCode.Int64: 
        e.ParameterValues[i] = -1; 
        break; 
       case TypeCode.Byte: 
        e.ParameterValues[i] = 0; 
        break; 
       case TypeCode.Char: 
       case TypeCode.String: 
        e.ParameterValues[i] = string.Empty; 
        break; 
       case TypeCode.DateTime: 
        e.ParameterValues[i] = new DateTime(); 
        break; 
      } 
     } 
    } 
} 
Смежные вопросы