Javascript __dopostback():传递错误的参数“无效的回发或回调参数”

问题描述:

我想在页面后面的Asp.net代码中引发javascript中的事件;每当选中一个复选框控件时。我可以使用javascript中的__dopostback来引发后面代码中的事件,但我无法将变量作为参数传递。Javascript __dopostback():传递错误的参数“无效的回发或回调参数”

这是JavaScript代码:

function CallServerCkhkBox(chkvalue) { 
    alert("_dopostback " + chkvalue); 
    __doPostBack('btnRefresh', chkvalue); 
    //__doPostBack('btnRefresh', 'Blue Green'); 
} 

警报打印变量chkvalue的正确值。

这是后面的C#代码:

protected void btnRefresh_Click(object sender, EventArgs e) 
{ 
    string checkboxes; 
    if (Request["__EVENTARGUMENT"] != "") 
    { 
     checkboxes = "From Javascript " + Request["__EVENTARGUMENT"]; 
    } 
    else 
    { 
     checkboxes = "From Click " + hdnChkbval.Value; 
    }   
    lblCheckBoxes.Text = checkboxes; 
} 
protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{ 
    ClientScript.RegisterForEventValidation("btnRefresh", "Blue Green"); 
    base.Render(writer); 
} 

如果我传递一个参数,一个固定字符串__dopostback它的工作原理,否则返回错误:

Invalid postback or callback argument.

相信在RegisterForEventValidation( )方法中,没有声明确切的值。

有没有办法传递一个变量字符串?

+2

请花一些时间和学习如何发布,再发表与格式代码。 – highwingers 2013-04-30 06:53:47

+0

在__doPostBack调用之前使用一个隐藏的输入,设置所需的值,并在服务器端读取该值 – mshsayem 2013-04-30 08:26:14

试试这个:

function CallServerCkhkBox(chkvalue) { 
    alert("_dopostback " + chkvalue); 
    __doPostBack('btnRefresh', chkvalue.toString()); 
}