void GridGotoFormTaskPane_Click(object sender, Xceed.SmartUI.SmartItemClickEventArgs e) { Xceed.SmartUI.SmartItem item = sender as Xceed.SmartUI.SmartItem; GridRelatedInfo info = item.Tag as GridRelatedInfo; switch (info.RelatedType) { case GridRelatedType.ByRows: { if (item.ParentItem.Text == "按选定行") { ShowFormFromGrid(m_parentForm, info, false); } else { ShowFormFromGrid(m_parentForm, info, true); } } break; case GridRelatedType.BySearchExpression: { SearchHistoryInfo his = m_dm.SearchManager.GetHistory(0); if (string.IsNullOrEmpty(his.Expression)) { MessageForm.ShowInfo("还未有搜索条件!"); return; } string newSearchExpression = info.SearchExpression; ISearchExpression oldSe = SearchExpression.Parse(his.Expression); Dictionary <string, object> dict = GetSearchExpreesionValues(oldSe); ISearchExpression newSe = SearchExpression.Parse(newSearchExpression); newSe = ReplaceSearchExpreesionValues(newSe, dict); ShowFrom(info.Action.Name, newSe, false); } break; case GridRelatedType.ByDataControl: { Dictionary <string, object> dict = m_dm.Copy(); string exp = EntityHelper.ReplaceEntity(info.SearchExpression, new EntityHelper.GetReplaceValue(delegate(string paramName) { return(dict[paramName]); })); ShowFrom(info.Action.Name, SearchExpression.Parse(exp), false); } break; case GridRelatedType.ByNone: { ShowFrom(info.Action.Name, null, false); } break; default: throw new NotSupportedException("Invalid GridRelatedInfo's RelatedType of " + info.Name); } }