2016-08-04 82 views
1

我在ASP.Net Web表单工作触发一个DetailsView内更新按钮,我有了一个DetailsView,它的最后一个模板,更新和取消按钮:想从外部按钮

<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

根据我的测试,模拟点击LinkBut​​ton不会触发回发。你应该通过一个隐藏的按钮替换隐藏的LinkBut​​ton

<asp:Button ID="MyUpdateButton" CommandName="Update" Text="Update" style="display: none;" runat="server" /> 
+0

真棒,看起来像固定它,谢谢! – DukeBrymin