Asp.Net中的中继器控制?

时间:2012-01-18 05:48:14

标签: asp.net repeater findcontrol

在使用asp.net的web应用程序中,我正在使用转发器控件,在ItmeCommand事件中我试图使用fid控制方法找到一个控件,我编写代码来找到它正常工作的控件,控件不在转发器控制中,我得到例外。如果控件不在转发器控制中,我该如何处理异常。我的代码是这样的:

if (((DropDownList)rpPendingApprovals.Items[i].FindControl "drpBack")).SelectedItem.Value != "0")

当下拉控件不存在时,在转发器中如何处理此异常帮助我,谢谢。

3 个答案:

答案 0 :(得分:3)

你为什么不这样做?

var dropdown = (DropDownList)rpPendingApprovals.Items[i].FindControl("drpBack"));

    if (dropdown != null && dropdown.SelectedItem.Value != "0")

答案 1 :(得分:2)

DropDownList drpBack = (DropDownList)rpPendingApprovals.Items[i].FindControl("drpBack");

if(drpBack!=null)
{
  if(drpBack.SelectedItem.Value != "0")
    {
       // Do Whatever you want
    }
}

答案 2 :(得分:0)

当您尝试使用Shoaib的代码时,您将获得异常,因为如果drodown不为null,则检查第二个表达式,如果SelectedItem为null,则创建异常,因此将表达式嵌套为

var dropdown = (DropDownList)rpPendingApprovals.Items[i].FindControl("drpBack"));

if (dropdown != null && dropdown.SelectedItem != null)
   if(dropdown.SelectedValue !="0")

问题有望消失