jQuery的 - 用jQuery通ASP按钮命令参数(Jquery - Pass asp butt

2019-07-04 00:09发布

我有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点击进入代码隐藏和命令参数为空。 可我通过某种方式命令使用jQuery的说法?

我试图保存价值的全局变量,但回发后,他们都是空的。 而且我不希望使用Cookie或视图状态为。

谢谢!

Answer 1:

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方法页面上。



Answer 2:

我发现使用__doPostBack(“身份证”,“ARGS”)创建了一个完整的页面上回发时,一个提交按钮。 我觉得更容易的就是添加一个hiddenfield页面,设置的值,然后调用button.click()事件

    <asp:Button ID="btnTrigger" runat="server" ClientIDMode="Static" OnClick="btnTrigger_Click" />
    <asp:HiddenField ID="CommandArg" runat="server" ClientIDMode="Static" />


    $('#CommandArg').val('my argument');
    $('#btnTrigger').click();


Answer 3:

或者你可以试试这个:

<script type="text/javascript">
    function MaybeThisWorks(obj)
    {
        __doPostBack( obj.id, 'OtherInformation' );
        return true;
    }
</script>

...

<asp:Button Text="ButtonValue" ID="RepP1" runat="server" OnClientClick="MaybeThisWorks(this);" OnClick="CodeBehindFunction" />

“OtherInformation”可以通过任何的字符串或变量所取代。
例如
$( '#日历')。fullCalendar( 'GETDATE')。得到月()+ ' '+ $(' #日历 ')。fullCalendar(' GETDATE')。和getFullYear()

CodeBehindFunction的背后是函数的代码是在服务器上执行,当您单击按钮(例如一个按钮,打印一份报告,并在代码隐藏功能需要jQuery的值)。
在代码隐藏功能,您可以通过获得的Request.Form参数[“__ EVENTARGUMENT”]

protected void CodeBehindFunction(object sender, EventArgs e)
{
 string arguments = Request.Form["__EVENTARGUMENT"];
 ...
}


Answer 4:

我通常只是在代码中添加一个属性后面的按钮,然后通过Javascript或jQuery的DOM的访问。

 mybutton.Attributes.Add("MyVar", "MyValue");

这将使得该网页,然后就可以使用JavaScript访问值。



Answer 5:

试试这个。 它为我工作。

//客户端的JQuery:

$('#btnTrigger').val('MyParameter');
$('#btnTrigger').click();

//服务器端点击方法

String Param = Request.Form(btnTrigger.UniqueID)


文章来源: Jquery - Pass asp button command argument with jquery