update panel 内部的控件,在没有ID情况下,如何同步回发?

gridview外加了个update panel ,导致自定义模板里的编辑按钮无法同步回发,于是乎写了一个事件,但事件只能保证按钮在第一次单击时是同步回发,第二次就不行了。求解决方案? protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { 。。。 var lnkAddSub = e.Row.FindControl("lnkAddSub") as LinkButton ; if (lnkAddSub != null) { ScriptManager1.RegisterPostBackControl(lnkAddSub); } 。。。 } } protected void gvList_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "AddSub") { return; } }
四季花海
浏览 387回答 9
9回答

至尊宝的传说

没有Id是做不到的,除非你有ID之外的其他唯一标识

拉风的咖菲猫

兄弟,别那么绝对,最起码,我可以在page_load事件里对gridview按行find控件每次执行  ScriptManager1.RegisterPostBackControl(lnkAddSub); 只是觉得这种方法使程序的结构看起来不太合理,太外行了。我只是想知道有没有正规的微软推荐的做法。

紫衣仙女

里面大多数的命令按钮我是希望异步的,但有一个编辑按钮,这需要跳转到编辑视图,编辑视图是在别外一个detailview里的,detailsview不在updatepanel里,所以单击后跳转不了。

冉冉说

第一次执行完之后,重新绑定一次数据试试

慕田峪9158850

此法暂不可行,页面逻辑比较复杂,有三级三层gridview嵌套

慕虎7371278

@沧海一杰: 那你获取到控件的ClientID,后台进行注册。把事件再绑定回来。 用JS去绑定也行。
打开App,查看更多内容
随时随地看视频慕课网APP