解决 A control with ID 'X' could not be

 时间:2026-02-12 13:29:58

1、首先根据字面的意思是:触发器找不到ID 为XX的控件。

但是我的控件ID明明就在那里放着。

这有发生的情况可能如下:

(注意:也就是解释为什么找不到)

首先如果 这个控件ID 不作为 GridView等一些数据控件内的模板项目时候,不会出现这有的错误。

但是 当如下图所示的情况:

UploadButton作为GridView中的Itemtemple 模板中的项时,此时这个UploadButton是直接获取不到的。你可以在cs文件中 直接打UploadButton试试,是不会出现智能提示的,也是没有这个对象的。

解决 A control with ID 'X' could not be

2、因为作为一个条目的模板。UploadControl 这个ID 会是变化的。可以在网页的源代码中查看。

如下图:

解决 A control with ID 'X' could not be

3、那么如何解决这个问题:

如果想绑定一个 

    <Triggers>

  <asp:AsyncPostBackTrigger />

    </Triggers>

那么可以采用代码绑定的方式。

比如在GridView加载完数据后进行绑定。

比如

遍历每个GridViewRow 然后查找ID 为

r.FindControl("UploadButton")

然后给他进行注册。

          GridViewRowCollection coll = GridView1.Rows;

            ScriptManager sm = Master.FindControl("ScriptManager1") as ScriptManager;

            foreach (GridViewRow r in coll)

            {

                // sm.RegisterPostBackControl(r.FindControl("UploadButton"));

               sm.RegisterAsyncPostBackControl(r.FindControl("UploadButton"));

            }

其中:RegisterAsyncPostBackControl 是真正的异步方式。

而   :RegisterPostBackControl 还是全页回发。

上面2个方法分别对应:trigger中的

  <Triggers>

  <asp:AsyncPostBackTrigger />

  <asp:PostBackTrigger />

    </Triggers>

4、其实。如果真正采用这有的方式还不如采用:

绑定:CommandName、CommandArgument

的方式进行操作。如图所示“

  <asp:Button id="UploadButton" 

           Text="更新当前时间"  

           runat="server" CommandName="UpdateTime" CommandArgument="<%Bind(CurTime) %>">

       </asp:Button>  

可以在GriView中的RowCommand 事件中进行处理。

解决 A control with ID 'X' could not be

5、处理事件:

如图所示:

解决 A control with ID 'X' could not be

  • 如何制作土豆泥虾丸
  • 无效婚姻有哪些情形,会产生什么样的法律后果
  • 怎样做薄荷巧克力蛋糕
  • PHP教程 如何将整型数据转换成空类型
  • 玻璃马赛克的烧结过程介绍
  • 热门搜索
    国庆节手抄报简单好看 小学生科技手抄报 劳动手抄报内容50字 新春手抄报 环保手抄报资料 溺水手抄报简单又漂亮 法制宣传手抄报 语文手抄报图片 手抄报设计大全 新冠肺炎手抄报