Jquery – 使用jquery传递asp按钮命令参数

前端之家收集整理的这篇文章主要介绍了Jquery – 使用jquery传递asp按钮命令参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有asp按钮:
<asp:button ID="btn1" runat="server" CommandArgument="" CssClass="btn1" OnClick="button_click"></asp:button>

和脚本:

$("a").click(function () {
            var val = $(this).attr('id').toString();                            
            $('.btn1').attr('CommandArgument',val);
            alert($('.btn1').attr('CommandArgument').toString());
            $('.btn1').click();
        });

点击后它会提醒我命令参数.但是在下一步 – 当我触发btn1点击jquery时,它转到codebehind并且命令参数为空.我可以用jquery以某种方式传递命令参数吗?

我试图将值保存到全局变量但是在回发后它们都是空的.我不想使用cookie或viewstate.

谢谢!

解决方法

CommandArgument完全是服务器端属性,不呈现任何html属性.因此,您无法更改任何按钮的属性并点击它.好消息是您可以使用客户端__doPostBack函数触发回发并将您的自定义值作为第二个参数传递:
<script type="text/javascript">
    $("a").click(function () {
        var val = $(this).attr('id').toString();
        __doPostBack("<%= btn1.UniqueID %>",val);
    });
</script>

并且您可以从Request.Form集合中获取服务器单击处理程序中的传递参数:

protected void button_click(object sender,EventArgs e)
{
    var argument = Request.Form["__EVENTARGUMENT"];
}

如果上面的脚本不起作用,那么可能没有在页面上定义__doPostBack函数.在这种情况下,将此代码添加到Page_PreRender方法:ClientScript.GetPostBackEventReference(btn1,string.Empty);这将迫使页面页面上定义__doPostBack方法.

猜你在找的jQuery相关文章