昨天在項目中遇到了一個問題,要前台腳本調用調用後台的事件。經過查閱網上的資料,這個方法還不錯。
第一步:前台寫一個腳本,我需要在前台判斷用戶輸入的是否是回車鍵,然後執行後台函數。

<script type="text/Javascript">

function keyClick(cmd)


...{

//判斷是否是回車鍵

if(event.keyCode==13)


...{

//執行後台更新代碼

eval(cmd);

}

}

</script>
第二步:在後台寫相應的函數。將要傳的參數定義為字符串,通過GetPostBackEventReference在Render事件中來安全的注冊腳本。

protected override void Render(HtmlTextWriter writer)


...{

foreach (GridViewRow Row in GridVIEw1.Rows)


...{

//這裡進行安全腳本注冊,只能在Render事件中進行,

String References = ClIEntScript.GetPostBackEventReference(gvRegister, "Update$" + Row.RowIndex.ToString(), True)

String Script= "Javascript:keyClick(""EVAL_COMMAND"")"

//傳參數

Script = Script.Replace("EVAL_COMMAND", References)

if (Row.RowType == DataControlRowType.DataRow)


...{

//ClIEntScript.GetPostBackEventReference只能在Render的時候調用,進行安全注冊腳本

if (Row.RowState == DataControlRowState.Edit)


...{

Row.Attributes.Add("onkeydown", Script)

}

}

}

base.Render(writer);

}
這樣就可以前台後台交互了。是不是很方便