2013-04-11 6 views
0

개체 (보낸 사람)의 ID를 기반으로 switch 문을 사용하려고합니다.SqlDataSource 보낸 사람 개체의 ID 가져 오기

 protected void SqlDataSource_Selected(object sender, SqlDataSourceStatusEventArgs e) 
     { 
      int count = e.AffectedRows; 
      SqlDataSource sqlds = (SqlDataSource)sender; 
      switch (sqlds.ID) 
      { 
       case "sqldsPTY": 
        lblPTYCount.Text = "(" + count.ToString() + ")"; 
        break; 
       case "sqldsINC": 
        lblINCCount.Text = "(" + count.ToString() + ")"; 
        break; 
       ... 
      } 
     } 

하지만 난 예외를 얻을 :

System.InvalidCastException : 'System.Web.UI.WebControls을 입력하는 유형'System.Web.UI.WebControls.SqlDataSourceView '의 개체를 캐스팅 할 수 없습니다를 .SqlDataSource '.

무엇이 잘못 되었나요?

+0

해결책을 찾으려면 시도하십시오. SqlDataSourceView sqlds = (SqlDataSourceView) 보낸 사람; –

답변

0
SqlDataSource sqlds = (SqlDataSource)sender; 

이 문제의 원인입니다. 보낸 사람은 SQLDataSourceView 여야합니다. 따라서 시도해보십시오

SQLDataSourceView sqlds = (SQLDataSourceView)sender 

나머지 코드는 적절하게 변경하십시오.

+0

System.Web.UI.WebControls? http://msdn.microsoft.com/en-GB/library/system.web.ui.webcontrols.sqldatasource.aspx – NDJ

+0

죄송합니다. 내 실수는 SQLDataSourceView에서 InnitCap을 사용하지 않았습니다. 지금 발견했습니다 ...하지만 ID 속성이없는 것 같습니다. 그래서 어떤 데이터 소스가 발신자인지 어떻게 알 수 있습니까? – Stuart

+0

msdn 페이지에 ID가 있다고 표시 되나요? 나는 솔직히 다른 점을 확신하지 못한다. – NDJ