2013-04-30 157 views
-1

我想在頁面後面的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

回答

0

試試這個:

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