2013-04-11 87 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.SqlDataSourceView为键入“System.Web.UI.WebControls的对象.SqlDataSource”。

我做错了什么?

+0

有关解决方法,请尝试; SqlDataSourceView sqlds =(SqlDataSourceView)发件人; – 2013-04-11 12:40:01

回答

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 2013-04-11 12:46:31

+0

对不起我的错误我没有'在SQLDataSourceView上使用InnitCap。我现在发现它...但是这似乎没有ID属性,所以我怎样才能知道哪个数据源是发送者? – Stuart 2013-04-11 12:47:37

+0

msdn页面显示它有一个ID?我不确定是否诚实 – NDJ 2013-04-11 12:49:31