1 場景
Asp.net開發過程中,表單提交操作是最常用的一個動作。
(1)如果我們在表單提交前能有一個對錶單項進行驗證的前置動作,那麼就可以減少錯誤提交的次數(驗證提交數據是否合法,如果不合法就不提交)。
(2)如果我們在表單提交完成後在前端能觸發一個回調函數,那麼我們就可以對錶單提交後,在服務器端的執行結果進行驗證。
2 總結
(1)添加前置函數
最簡單的添加方式:給form掛接 onsubmit方法。
<form id="form1" runat="server" onsubmit="return validateForm()">
注:添加的onsubmit方法必須有返回值“true”或“false”,在表單提交前,會先執行“validateForm()”方法,如果此方法返回值爲true,那麼表單正常提交,如果此方法返回值爲false,那麼表單停止提交。
表單提交前的驗證操作,我們就可以寫在validateForm()方法裏,驗證通過返回true,正常提交。驗證不通過,返回false,停止提交。
(2)添加回調函數
也提供最簡單的方法:在服務器端通過“ClientScript”類對象提供的靜態方法,給表單添加回調函數。
protected void ModifyLink_Click(object sender, EventArgse)
{
Tel400Entitytel400 = new Tel400Entity()
{ Id=txt400TelId.Text,
Tel400 = txt400Tel.Text,
FixTel = txtFixTel.Text,
Remark = txtRemark.Text,
Flag = NumberFlag.SelectedValue
};
boolisOk= Tel400BLL.Update(tel400);
ClientScript.RegisterStartupScript(this.GetType(), "ModifyJs","<script>ModifyIsOK('" +isOk.ToString() + "');</script>");
}
注:上述函數爲
<asp:LinkButton ID="btn_modify" runat="server" class="easyui-linkbutton" OnClick="ModifyLink_Click">修T改?</asp:LinkButton>富客戶端控件的後臺事件代碼。
在ClientScript.RegisterStartupScript函數中,我們把客戶端js函數"ModifyIsOk(obj)"設計成了控件click事件在前段的回調函數。
<script type="text/javascript">
///修改操作,表單提交後的回調函數。
functionModifyIsOK(obj) {
switch (obj) {
case 'True':
break;
default:
alert("修改失敗,已經存在對應的短號!");
break;
}
}
</script>
特別強調:ClientScript.RegisterStartupScript函數添加的調用腳本在表單的最後(</form>前面),適合在頁面加載完成後執行Js代碼,"ModifyIsOK()"函數最好添加在表單控件之前,如果加載。
也可以使用ClientScript.RegisterClientScriptBlock添加回調函數,此函數會將調用腳本添加在(<form>後面),適用在頁面加載控件之前執行。