ASP.NET - 使用Javascript在LinkBut​​ton上编辑CommandName

时间:2010-10-06 10:03:52

标签: javascript asp.net

我在转发器中有一系列链接按钮,用于切换页面

<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”,如果他们单击'不'它保持'重定向')。

有人可以帮忙吗?谢谢,如果可以的话。

1 个答案:

答案 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" />

然后,在命令事件中调用的代码后面的页面中,您可以访问在隐藏字段中设置的值。