|
需求来自知识星球内的用户提问:
参看FineUIPro的示例:http://pro.fineui.com/#/form/form_dynamic.aspx
在FineUIMvc中实现也不难,来看下关键代码:
1. 视图代码
- @(F.Form().BodyPadding(10).ID("Form1").IsFluid(true).CssClass("blockpanel").EnableCollapse(false).Title("表单").LabelWidth(120).LabelAlign(LabelAlign.Top)
- .Rows(
- F.FormRow()
- .Items(
- F.Label().ID("Label1").ShowLabel(false).Text("这是一个标签")
- ),
- F.FormRow()
- .Items(ViewBag.DynamicItems)
- )
- )
- <br>
- 注:用户名和性别两个控件是动态创建的。
- <br>
- <br>
- @(F.Button().ID("Button1").ValidateForms("Form1").ValidateTarget(Target.Top).Text("验证表单并提交").OnClick(Url.Action("Button1_Click"), "Form1"))
复制代码
2. 控制器代码
- // GET: Form/FormDynamic
- public ActionResult Index()
- {
- InitFormRows();
- return View();
- }
- private void InitFormRows()
- {
- List<Field> fields = new List<Field>();
- TextBox tbxUser = new TextBox();
- tbxUser.ID = "tbxUserName";
- tbxUser.Text = "";
- tbxUser.Label = "用户名";
- tbxUser.ShowLabel = true;
- tbxUser.ShowRedStar = true;
- tbxUser.Required = true;
- tbxUser.EmptyText = "请输入用户名";
- fields.Add(tbxUser);
- FineUIMvc.DropDownList ddlGender = new FineUIMvc.DropDownList();
- ddlGender.ID = "ddlGender";
- ddlGender.Label = "性别(自动回发)";
- ddlGender.Items.Add("男", "0");
- ddlGender.Items.Add("女", "1");
- ddlGender.AutoSelectFirstItem = false;
- // 添加后台事件处理函数
- ddlGender.Events.Add(new Event("change", Url.Action("ddlGender_SelectedIndexChanged"), "ddlGender"));
- fields.Add(ddlGender);
- ViewBag.DynamicItems = fields.ToArray();
- }
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult ddlGender_SelectedIndexChanged(string ddlGender_text)
- {
- ShowNotify("选择的性别:" + ddlGender_text);
- return UIHelper.Result();
- }
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Button1_Click(string tbxUserName, string ddlGender_text)
- {
- ShowNotify("用户名:" + tbxUserName + " 性别:" + ddlGender_text);
- return UIHelper.Result();
- }
复制代码
页面运行效果:
注意,FineUIMvc中在后台通过C#注册后台事件的方式:
- ddlGender.Events.Add(new Event("change", Url.Action("ddlGender_SelectedIndexChanged"), "ddlGender"));
复制代码 其中:
1. change - 前端库JS库对应的下拉列表的事件名称
2. ddlGender_SelectedIndexChanged - 对应的控制器方法
这个示例会添加到下个版本(v5.1.0)的官网示例中。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|