一個查詢功能
有與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方法
protected void ods_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
myValidClass msg = (myValidClass)e.OutputParameters["msg"];
if (!msg.status)
{
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alert", "alert('"+msg.msg+"');", true);
}
}
DB溝通class的方法
public DataTable search(string parameter1, out myValidClass msg)
{
DataTable dt=new DataTable();
//Do your validate method
msg=new myValidClass();
msg.status=true;
if(string.IsNullOrEmpty(parameter1))
{
msg.status=false;
msg.msg="參數1不可為空";
}
if(msg.status)
{
dt=db.getData(parameter1);
}
return dt;
}
這樣在做完查詢後ods_Selected方法就會檢查msg有沒有錯誤,
有錯誤就會alert錯誤訊息