我在转发器中有一系列链接按钮,用于切换页面
<asp:Repeater ID="rptPageLinks" runat="server"><ItemTemplate>
<asp:LinkButton ID="lnkNewPage" runat="server" Text='<%# Eval("Page") %>'
OnCommand="SomeEventHandler" CommandArgument='<%# Eval("Page") %>' CommandName="Redirect"
OnClientClick="return confirm('Do you want to save your chanes before you navigate to a new page?');" />
</ItemTemplate></asp:Repeater>
我希望能够做的是将OnClientClick的结果传递给EventHandler,理想情况是通过更改CommandName(即如果他们在确认时单击“是”,则将CommandName更改为“SaveAndRedirect”,如果他们单击'不'它保持'重定向')。
有人可以帮忙吗?谢谢,如果可以的话。
答案 0 :(得分:3)
不幸的是,你提出的问题是不可能的。 OnCommand是asp控件的ASP.Net服务器端属性。在客户端上呈现后,您只能使用客户端html。
但是,解决方案是将确认对话框的值保存到隐藏字段中的命令事件中,然后在命令中读取该字段。要做到这一点,我建议像:
<script type="text/javascript">
function confirmSave() {
document.getElementById('confirmChoice').value=confirm("Do you want to save your changes...");
}
</script>
<input type='hidden' id='confirmChoice' runat="server" />
然后,在命令事件中调用的代码后面的页面中,您可以访问在隐藏字段中设置的值。