DetailsView中的FindControl无法正常工作?

时间:2011-03-31 11:16:09

标签: c# .net asp.net visual-studio detailsview

我有一个Gridview,当点击编辑按钮时,使用详细信息视图显示该行的详细信息。

在显示时,我需要在detailsView中找到一个控件,然后将其与数据源绑定。

首先,我不确定要使用的事件但使用了DetailsView1_DataBound。但是,如果我必须使用

找到控件
var control=(ControlType)DetailsView1.Findcontrol("ID");

始终返回null。可能是我没有使用正确的事件,并且在那时找不到控件。关于要使用的事件的任何想法,以及正确的代码吗?

由于

2 个答案:

答案 0 :(得分:3)

databound event,您需要注意DetailsView Mode

 if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
    {
      //Put here if you want to find control of your Edit Mode
      var control=(ControlType)DetailsView1.Findcontrol("EditTemplateControlID");
    }

 if (DetailsView1.CurrentMode == DetailsViewMode.Insert)
    {
        //Put here if you want to find control of your Insert Mode
      var control=(ControlType)DetailsView1.Findcontrol("InsertTemplateControlID");
    }

答案 1 :(得分:0)

我遇到了同样的问题,穆罕默德·阿赫塔尔的答案对我没有帮助。将DetailsView的默认模式从“编辑”更改为“插入”后,问题得以解决。

我还建议使用ItemCreated事件而不是DataBound事件。我经常使用它在DetailsView的字段中设置默认值。