列表中表头链接根据列值打开不同的画面

by RainBirda 2016.1.15 09:45
注:脚本执行有风险,对于客户正式环境请在研发指导下执行。根据需求,电商订单的已生单号链接需要判断已生单是出货单还是退回处理单,然后分别打开不同的画面,查找平台提供的代码,不能根据列表中某一列字段值判断打开不同的画面(或者没找到。。。),只能手动进行单号链接的处理。 步骤: 1、首先需要注册一下列表头点击事件; 2、设置具体哪一列能触发列表头的事件; 3、在事件中进行代码处理,这个事件应该可以判断是哪一列触发的,这里因为只有一列链接,所以也就没有再做判断。 具体代码如下: public void AfterCreateChildControls(){    AfterCreateChildControls_Qry_DefaultImpl();//BE列表自动产生的代码     //注册单号链接事件    ((UFWebDataGridAdapter)this.DataGrid1).GridHeadClicked += new GridHeadClicked(DataGridTitleClicked);} public void BeforeUIModelBinding(){    //设置显示单号链接    if (this.DataGrid1.Columns["FinishedDocNo"] != null)    {        this.DataGrid1.Columns["FinishedDocNo"].HasEvent = true;    }           } /// <summary>/// 设置单号链接/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DataGridTitleClicked(object sender, GridHeadClickEventArgs e){    this.DataGrid1.CurrentPart.DataCollect();    this.DataGrid1.CurrentPart.IsDataBinding = true;    this.DataGrid1.CurrentPart.IsConsuming = false;     IUIView view = this.Action.CurrentModel.Views["ECO"];    IUIRecord record = view.FocusedRecord;     if (e.FieldID == "FinishedDocNo")    {        if (record != null)        {            string formID = string.Empty;            NameValueCollection param = new NameValueCollection();            param.Add("TargetOrganization", PlatformContext.Current.OrgID);            param.Add("ID", record["FinishedDocID"].ToString());            if (Convert.ToBoolean(record["IsReturn"]))            {                //退回处理                formID = "7dde4c9d-98a2-4bb1-bc42-bccd74e4e1ac";            }            else            {                //标准出货                formID = "824496cc-bb94-472c-950e-4adfaec2f2c6";                param.Add("SHIP_Type", "SM6010");            }            this.ShowModalDialog(formID, "", "992", "504", string.Empty, param, false);        }    } }

RecentComments

评论 RSS

Statistics

989 篇文章
0 个单页
655311 条评论
11 次评分
258334 次访问
访问统计开始于 2019年12月15日
平均日访问 5615 次
当前 137 人在线