1、查找
在UIFormWebpartCodeBehindExtend中的AfterCreateChildControls 函数中注册Ref界面
public void AfterCreateChildControls()
{
//参照的FormID:0d406ee1-2a02-4b33-ba94-4aa6175cbbc3
//传递隐藏域wpFindID的客户端ID,隐藏域wpFindID会记录参照选择的记录ID
//绑定注册弹出对话框到查找按钮
PDFormMessage.ShowConfirmDialog(this.Page, "0d406ee1-2a02-4b33-ba94-4aa6175cbbc3", "580", "408", "固定年限折扣率查找", wpFindID.ClientID, this.BtnFind);
}
在UIFormWebpartCodeBehindExtend中的BtnFind_Click_Extend函数中调用第一步中定义好的Ref界面
private void BtnFind_Click_Extend(object sender, EventArgs e)
{
//调用模版提供的默认实现.--默认实现可能会调用相应的Action.
if (!string.IsNullOrEmpty(wpFindID.Value))
this.Action.NavigateAction.MovePageAt(null, long.Parse(wpFindID.Value));
BtnFind_Click_DefaultImpl(sender,e);
}
2、列表
在UIModelActionExtend中的ListClick_Extend内添加如下代码
private void ListClick_Extend(object sender, UIActionEventArgs e)
{
//List Click Code Demo...
//this.CurrentPart.NavigatePage("TestList", null);
//this.ListClick_DefaultImpl(sender,e) ;
//UFIDA.U9.CBO.SCM.GYRtnDiscountRateList
this.CurrentPart.NavigatePage("UFIDA.U9.CBO.SCM.GYRtnDiscountRateList", null);
//调用模版定义的默认实现方法.如需扩展,请直接在此编程.
this.ListClick_DefaultImpl(sender,e);
}
如果想在点击了列表中的某一行能够将该行的记录带到编辑界面中,可在列表的UIModelActionExtend的OnGridRowDbClick_Extend函数中添加如下代码
private void OnGridRowDbClick_Extend(object sender, UIActionEventArgs e)
{
//List Grid RowDbClic Code Demo...
//string DataID = this.CurrentModel.PositionType.FocusedRecord.ID.ToString();
//string CardPageID="Test";//在这里CardPageID表示卡片的URI
//OnNavigatCard("Browse", DataID, CardPageID);
//调用模版定义的默认实现方法.如需扩展,请直接在此编程.
string DataID = this.CurrentModel.GYRtnDiscountRate.FocusedRecord["MainID"].ToString();
OnNavigatCard("Browse", DataID, "UFIDA.U9.CBO.SCM.GYRtnDiscountRate");
this.OnGridRowDbClick_DefaultImpl(sender,e);
}
private void OnNavigatCard(string type, string dataID, string formID)
{
string FormID = formID;//AddFormID
string DataID = dataID;
if (DataID == String.Empty && type == "Browse")
{
return;
}
else
{
System.Collections.Specialized.NameValueCollection nameValCol = new System.Collections.Specialized.NameValueCollection();
nameValCol.Add("PDPageStatus", type);
nameValCol.Add("ID", DataID);
this.CommonAction.CurrentPart.NavigatePage(FormID, nameValCol);
}
}
![生效 生效](https://p-blog.csdn.net/images/p_blog_csdn_net/hduzh/590531/o_%E7%94%9F%E6%95%88_thumb_6.png)
private void OnNew_Extend(object sender, UIActionEventArgs e)
{
NavigateToCard("UFIDA.U9.CBO.SCM.GYRtnDiscountRate", string.Empty, "New", "");
//调用模版定义的默认实现方法.如需扩展,请直接在此编程.
this.OnNew_DefaultImpl(sender,e);
}
/// <summary>
/// NavigateToCard 列表导航到卡片
/// </summary>
/// <param name="pageID">卡片的pageID</param>
/// <param name="dataID">焦点行的ID</param>
/// <param name="type">数据状态</param>
/// <param name="fieldName">需要传递的额外参数,如SOB</param>
private void NavigateToCard(string pageID, string dataID, string type, string fieldName)
{
//页面参数,将传递到页面
NaviteParamter parameter = new NaviteParamter();
//如果当前表头记录不为空
if (!string.IsNullOrEmpty(fieldName))
{
if (this.MainView.FocusedRecord != null &&this.MainView.Fields.Contains(fieldName)&& this.MainView.FocusedRecord[fieldName] != null)
parameter.NameValues.Add(fieldName, this.MainView.FocusedRecord[fieldName].ToString());
}
string DataID = dataID;
if (DataID == string.Empty && type == "Browse")
return;
else
{
parameter.NameValues.Add("PDPageStatus", type);
//设置数据状态New,Browse
parameter.AddPDPageID(DataID);
//传递一条数据记录ID,在IPart.NameValues[PDPageID]中
parameter.NameValues.Add("ID", DataID);
NavigateManager.NavigatePage(this.CurrentPart, pageID, parameter);
}
}