2010-04-21 3 views
0

DataList 및 FormView가 있습니다. 그들은 동일한 정보를 가져 오지만 별도의 데이터 소스를 가지고 있습니다. FormView의 데이터 소스에는 DataList에서 선택된 항목을 가져 오기위한 FilterExpression이 있습니다. 첫 번째로드에서 DataList의 SelectedValue는 null입니다 (자연스럽게). FilterExpression이 제로 행이 될 것으로 기대하지만 그렇게하지는 않습니다. DefaultValue를 0으로 설정하면됩니다. 그러나 DataList에서 무언가를 선택하면 매개 변수가 업데이트되지 않습니다. 내가 잘못하고 있니?속성이 null 인 경우 FilterParameter에서 ControlParameter 사용

답변

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; 
      } 
     } 
    } 
} 
관련 문제