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

我有asp按钮:

 

和脚本:

 $("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函数触发回发并将您的自定义值作为第二个参数传递:

  

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

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

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

我发现使用__doPostBack(’id’,’args’)在提交按钮时创建一个完整的页面回发。 我发现更容易添加一个隐藏的页面,设置值,然后调用button.click()事件

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

或者你可以尝试这个:

  ...  

‘OtherInformation’可以被任何字符串或变量替换。
例如
$( ‘#日历’)。fullCalendar( ‘GETDATE’)。得到月()+ ‘ ‘+ $(’ #日历 ‘)。fullCalendar(’ GETDATE’)。和getFullYear()

CodeBehindFunction是单击按钮时在服务器上执行的代码隐藏function(例如,在代码隐藏function中打印报告并需要jquery值的按钮)。
在codebehind函数中,您可以通过Request.Form [“__ EVENTARGUMENT”]获取参数

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

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

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

这将呈现给页面,然后您可以使用Javascript访问该值。

试试这个。 它对我有用。

//客户端JQuery:

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

//服务器端单击方法

 String Param = Request.Form(btnTrigger.UniqueID)