多次有朋友问:如何控制ListForm字段的初始值?比如控制一个用户字段默认为当前用户。
这是一个很小的问题,答案也很简单:用代码控制啊。但是貌似刚入门的朋友还是搞不定,写这篇文章解释一下。
假设表单如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="DataEdit.ascx.cs" Inherits="QuickFlowExample_DesignerAndCustomForm_DataEdit" %>
<%@ Register Assembly="QuickFlow.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ec1e0fe6e1745628"Namespace="QuickFlow.UI.Controls" TagPrefix="QFC" %>
<%@ Register Assembly="QuickFlow.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ec1e0fe6e1745628"Namespace="QuickFlow.UI.ListForm" TagPrefix="QFL" %>
<table width="735" border="0" align="center" cellpadding="0" cellspacing="0" class="table_stroke"><tr><td class="form-title"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="25" class="form-title_font">QuickFlowDesigner 自定义表单示例</td></tr></table></td></tr><tr><td align="right" class="form-title2"></td></tr><tr><td><table width="98%" border="0" cellpadding="2" cellspacing="0" class="table_stroke1"><tr><td class="form-label" width="200px">标题</td><td class="form-body"><QFL:FormField ID="fieldTitle" runat="server" FieldName="Title"></QFL:FormField></td></tr><tr><td class="form-label">申请内容</td><td class="form-body"><QFL:FormField ID="FormField4" runat="server" FieldName="申请内容"></QFL:FormField></td></tr><tr><td class="form-label">申请理由</td><td class="form-body"><QFL:FormField ID="FormField5" runat="server" FieldName="申请理由"></QFL:FormField></td></tr><tr><td class="form-label">相关附件</td><td class="form-body"><QFL:FormAttachments ID="FormAttachments1" runat="server"></QFL:FormAttachments></td></tr><tr><td class="form-label">Users</td><td class="form-body"><QFL:FormField ID="UsersField1" runat="server" FieldName="Users"></QFL:FormField></td></tr><tr><td class="form-body" colspan="2"></td></tr></table></td></tr>
</table>
在Page_Load中写代码如下:
protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){//普通字段的初始值fieldTitle.Value = "这儿输入申请概要";//用户字段的初始值SPFieldUserValue v = new SPFieldUserValue(SPContext.Current.Web);SPUser user = SPContext.Current.Web.CurrentUser;v.LookupId = user.ID;this.UsersField1.Value = v;//其他类型字段自己研究吧。。。}}
效果如下: