我在ASP.Net Webforms中工作,我有一个DetailsView,它的最后一个模板是Update和Cancel按钮:
<EditItemTemplate>
<asp:LinkButton ID="MyUpdateButton" CommandName="Update" Text="Update" runat="server"></asp:LinkButton>
<asp:LinkButton ID="MyCancelButton" CommandName="Cancel" Text="Cancel" CausesValidation="false" runat="server"></asp:LinkButton>
</EditItemTemplate>
对于美学,我想将这些按钮移到DetailsView之外。但是,在这样做时,我失去了触发OnItemUpdating
处理程序的能力。我可以在按钮上添加OnClick
处理程序,但是我丢失了DetailsViewUpdateEventArgs
数据,并且它没有调用验证器。
所以,我想,“为什么没有在DetailsView外面有一个按钮来调用DetailsView里面的按钮上的.click()?”。所以我连接了另一个按钮,使当前的Update按钮不可见(通过'style="display: none;"'
)并将外部按钮的OnClientClick
设置为找到内部按钮并调用.click()处理程序的函数它。我已经测试了这个功能,并且它按照它应该的方式工作,因为它找到了正确的按钮。但它仍然不会触发OnItemUpdating
处理程序。
对我可能做错了什么的任何想法?或者从外部按钮触发该按钮(DetailsView内部)的更好方法是什么?
答案 0 :(得分:0)
根据我的测试,模拟LinkButton上的点击不会触发回发。您应该用隐藏的按钮替换隐藏的 LinkButton :
<asp:Button ID="MyUpdateButton" CommandName="Update" Text="Update" style="display: none;" runat="server" />