一個查詢功能
有與DB溝通的Class,查詢方法會回拋DataTable
前端做GridView+ObjectDataSource
現在想要做後端驗證
驗證的方式是在傳入參數加入一個自訂類別 myValidClass的 output參數叫msg
在函式開頭就會先做驗證
有錯誤的時候msg的status屬性就會是false
並且msg的msg屬性會塞錯誤訊息
在網頁端的ODS加上
<asp:Parameter Type="Object" Direction="Output" Name="msg" />
並且加入OnSelected方法ods_Selected
<asp:ObjectDataSource runat="server" ID="ods" .... OnSelected="ods_Selected">
.cs端的ods_Selected方法
<div>
protected void ods_Selected(object sender, ObjectDataSourceStatusEventArgs e)</div>
<div>
{</div>
<div>
myValidClass msg = (myValidClass)e.OutputParameters["msg"];</div>
<div>
if (!msg.status)</div>
<div>
{</div>
<div>
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alert", "alert('"+msg.msg+"');", true);</div>
<div>
}</div>
<div>
}</div>
DB溝通class的方法
<div>
public DataTable search(string parameter1, out myValidClass msg)</div>
<div>
{</div>
<div>
DataTable dt=new DataTable();</div>
<div>
//Do your validate method</div>
<div>
msg=new myValidClass();</div>
<div>
msg.status=true;</div>
<div>
if(string.IsNullOrEmpty(parameter1))</div>
<div>
{</div>
<div>
msg.status=false;</div>
<div>
msg.msg="參數1不可為空";</div>
<div>
}</div>
<div>
if(msg.status)</div>
<div>
{</div>
<div>
dt=db.getData(parameter1);</div>
<div>
}</div>
<div>
return dt;</div>
<div>
}</div>
這樣在做完查詢後ods_Selected方法就會檢查msg有沒有錯誤,
有錯誤就會alert錯誤訊息