代码实现-表单列表
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>表单列表</title>
</head>
<body>
<form id="formList" runat="server">
<div align="center">
<table width="96%" border="0" cellspacing="0" cellpadding="0" align="center" id="Table1">
<tr>
<td class="TableBody1" valign="top">
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td class="table_bgcolor">
<table class="bordercolor" cellpadding="5" width="100%" border="1" cellspacing="0">
<tr>
<td height="25px" class="table_titlebgcolor" align="center">
<b>表单管理</b>
</td>
</tr>
<tr>
<td height="22px" align="center">
表单名称:<asp:TextBox runat="server" ID="FormNameTextBox"> </asp:TextBox><asp:Button
runat="server" Text="查询" ID="SearchButton" OnClick="onSearchButtonClick" /> <asp:Button
runat="server" ID="AddFormButton" Text="添加" OnClick="onAddFormButtonClick" />
</td>
</tr>
<tr>
<td align="center">
<asp:GridView runat="server" ID="FormGridView" SkinID="GridViewSkin" EmptyDataText="没有找到符合条件的记录!"
AutoGenerateColumns="false" OnRowDataBound="FormGridView_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="序号">
<ItemTemplate>
<%# (Container.DataItemIndex + 1) %>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFormatString="FormEdit.aspx?action=edit&formid={0}"
DataNavigateUrlFields="id" DataTextField="namelabel" HeaderText="表单名称" />
<asp:BoundField DataField="tablename" HeaderText="主表名称" />
<asp:BoundField DataField="formdes" HeaderText="表单描述" />
<asp:HyperLinkField DataNavigateUrlFields="id,workflowid" DataNavigateUrlFormatString="ProcessInfo.aspx?id={0}&workflowid={1}"
HeaderText="挂接流程" DataTextField="workflowid" Target="_blank" />
<asp:CommandField HeaderText="操作" DeleteText="删除" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
FormList.aspx.cs 后端代码
/// <summary>
/// 显示所有表单
/// </summary>
private void bindFormList()
{
string formname = FormNameTextBox.Text.Trim();
processList = processBLL.GetModelList("");
string search = "";
if(false == string.IsNullOrEmpty(formname))
{
search = "namelabel like '%" + formname + "%'";
}
FormGridView.DataSource = formBLL.GetModelList(search);
FormGridView.DataBind();
}
#region EventHandler
/// <summary>
/// 查询表单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void onSearchButtonClick(object sender, EventArgs e)
{
bindFormList();
}
/// <summary>
/// 添加表单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void onAddFormButtonClick(object sender, EventArgs e)
{
Response.Redirect("FormEdit.aspx?action=add&formid=0");
}
protected void FormGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink bindWFLink = e.Row.Cells[4].Controls[0] as HyperLink;
if (false == string.IsNullOrEmpty(bindWFLink.Text))
{
Guid workflowid = new Guid(bindWFLink.Text);
M.WF_Process process = processList.Where(s => s.WorkFlowID == workflowid).FirstOrDefault();
if (process != null)
{
bindWFLink.Text = process.WorkFlowName;
}
}
else
{
bindWFLink.Text = "挂接流程";
}
}
}
#endregion //End EventHandler
#region Fields
private B.workflow_bill formBLL = new B.workflow_bill();
#endregion //End Fields
创建编辑表单-同时创建数据库主表、子表
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (!string.IsNullOrEmpty(Request.QueryString["action"]))
{
ViewState["action"] = Request.QueryString["action"];
}
if (!string.IsNullOrEmpty(Request.QueryString["formid"]))
{
ViewState["formid"] = Request.QueryString["formid"];
}
if (ViewState["action"].ToString() == "edit")
{
initialForm();
}
}
}
#region EventHandler
/// <summary>
/// 保存表单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void onSaveFormButtonClick(object sender, EventArgs e)
{
//TODO:
/* 判断表单是添加还是修改
创建主表格
*/
if (ViewState["action"].ToString() == "add")
{
//get next form id
//create form
//create from table
int formid = seqBLL.GetNextSeq("form");
if (formid < 0)
{
return;
}
M.workflow_bill formModel = new M.workflow_bill();
formModel.id = formid;
formModel.namelabel = FormNameTextBox.Text.Trim();
formModel.formdes = FormdesTextBox.Text;
formModel.tablename = "form_main_" + formid;
formModel.detailkeyfield = "mainid";
formModel.subcompanyid = 1;
formBLL.Add(formModel);
createMainTable(formid);
ViewState["action"] = "edit";
ViewState["formid"] = formid.ToString();
Response.Redirect("FormEdit.aspx?action=edit&formid=" + formid);
return;
}
if (ViewState["action"].ToString() == "edit")
{
int formid = 0;
int.TryParse(ViewState["formid"].ToString(), out formid);
//modify description
return;
}
}
/// <summary>
/// 返回列表页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void onBackButtonClick(object sender, EventArgs e)
{
Response.Redirect("FormList.aspx");
}
#endregion End EventHandler
#region Helper Methods
private void initialForm()
{
string formid = ViewState["formid"].ToString();
int id = -1;
if (int.TryParse(formid, out id))
{
M.workflow_bill form = formBLL.GetModel(id);
if (form != null)
{
FormNameTextBox.Text = form.namelabel;
FormdesTextBox.Text = form.formdes;
}
}
}
private void createMainTable(int formid)
{
formBLL.CreateMainTable(formid);
}
protected string getFormID()
{
return ViewState["formid"].ToString();
}
//protected string getAction()
//{
// return ViewState["action"].ToString();
//}
#endregion //End Helper Methods
#region Fields
private BLL.WorkFlow.SequenceIndex seqBLL = new B.SequenceIndex();
private BLL.WorkFlow.workflow_bill formBLL = new B.workflow_bill();
private B.workflow_billfield formFieldBLL = new B.workflow_billfield();
private B.workflow_billdetailtable formDetailTableBLL = new B.workflow_billdetailtable();
private B.workflow_formdetailinfo formDetailInfoBLL = new B.workflow_formdetailinfo();
#endregion //End Fields