public static Ui.DataGrid GetProjectPublicGridList(List <int> ParentProjectIDList, List <int> ParentIDList, string Keywords, string orderBy, long startRowIndex, int pageSize, int UserID = 0) { long totalRows = 0; List <SqlParameter> parameters = new List <SqlParameter>(); List <string> conditions = new List <string>(); conditions.Add("1=1"); string sortorder = string.Empty; var cmdlist = new List <string>(); if (!string.IsNullOrEmpty(Keywords)) { parameters.Add(new SqlParameter("@LikeKeywords", "%" + Keywords + "%")); conditions.Add("([Name] like @LikeKeywords)"); } if (ParentProjectIDList.Count > 0) { cmdlist = ViewRoomFeeHistory.GetPublicProjectIDListConditions(ParentProjectIDList, RoomIDName: "[ParentProjectID]", UserID: UserID); } if (ParentIDList.Count > 0) { cmdlist = ViewRoomFeeHistory.GetPublicParentIDListConditions(ParentIDList, RoomIDName: "[ID]", UserID: UserID); } if (cmdlist.Count > 0) { conditions.Add(string.Join(" or", cmdlist.ToArray())); } string fieldList = "A.* "; string Statement = " from (select [Project_Public].*,[Project].FullName as ProjectFullName from [Project_Public] left join [Project] on [Project].ID=[Project_Public].ParentProjectID)A where " + string.Join(" and ", conditions.ToArray()); var list = GetList <Project_PublicDetail>(fieldList, Statement, parameters, orderBy, startRowIndex, pageSize, out totalRows).ToArray(); DataAccess.Ui.DataGrid dg = new Ui.DataGrid(); dg.rows = list; dg.total = totalRows; dg.page = pageSize; return(dg); }