FineUI 官方论坛

标题: 关于Attributes属性的应用 [打印本页]

作者: szjazz    时间: 2014-8-3 02:23
标题: 关于Attributes属性的应用
想动态生成表单控件后与数据表的字段建立关联,想到利用Attributes属性,可是发现页面设计的控件支持Attributes属性,可在查看源码中看得到,但是动态生成的控件却是在源码中看不到,应该是一个Bug
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FormEdit.aspx.cs" Inherits="Jazz.CRM.Setup.FormEdit" %>

  2. <!DOCTYPE html>

  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     <title></title>
  7. </head>
  8. <body>
  9.     <form id="form1" runat="server">
  10.     <div>
  11.         <f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" />
  12.         <f:Panel ID="Panel1" runat="server" BodyPadding="5px" ShowBorder="true" ShowHeader="true" Title="Panel" Layout="Fit" BoxConfigAlign="StretchMax">
  13.             <Items>
  14.                 <f:Form ID="Form2" runat="server" BodyPadding="5px" Title="Form" ShowHeader="false" ShowBorder="false">
  15.                     <Rows>
  16.                         <f:FormRow ID="FormRow1" runat="server">
  17.                             <Items>
  18.                                 <f:TextBox ID="txtTitle" runat="server" Label="表单标题" Text=""></f:TextBox>
  19.                             </Items>
  20.                         </f:FormRow>
  21.                     </Rows>
  22.                 </f:Form>
  23.             </Items>
  24.         </f:Panel>
  25.     </div>
  26.     </form>
  27. </body>
  28. </html>
复制代码
  1. using System;
  2. using System.Collections.Generic;

  3. using System.Web;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;

  6. using Newtonsoft.Json;
  7. using Newtonsoft.Json.Linq;
  8. namespace Jazz.CRM.Setup
  9. {
  10.     public partial class FormEdit : System.Web.UI.Page
  11.     {
  12.         protected void Page_Init(object sender, EventArgs e)
  13.         {
  14.             FineUI.TextBox dyTextBox = new FineUI.TextBox();
  15.             dyTextBox.Label = "动态生成";
  16.             dyTextBox.ID = "dy123";
  17.             SetAttributes(dyTextBox);
  18.             FormRow1.Items.Add(dyTextBox);
  19.         }

  20.         protected void Page_Load(object sender, EventArgs e)
  21.         {
  22.             if (!IsPostBack)
  23.                 SetAttributes(txtTitle);

  24.         }
  25.         protected void SetAttributes(FineUI.TextBox textBox)
  26.         {
  27.             string jsonStr=@"{'FromTable':'111','FromFieldName':'aaa','ToTable':'222','ToFieldName':'bbb'}";
  28.             JObject jObject = (JObject)JsonConvert.DeserializeObject(jsonStr);
  29.             textBox.Attributes = jObject;
  30.         }
  31.     }
  32. }
复制代码




作者: sanshi    时间: 2014-8-6 20:50
不支持这种用法。仅少数几个控件支持Attributes,比如Label,Image,在这些控件中Attributes的值会被添加到DOM节点上
作者: szjazz    时间: 2014-8-6 23:19
sanshi 发表于 2014-8-6 20:50
不支持这种用法。仅少数几个控件支持Attributes,比如Label,Image,在这些控件中Attributes的值会被添加到 ...

那要扩展控件的属性,记录某些数据字段的特征,如何处理啊
作者: sanshi    时间: 2014-8-7 09:51
其实目前你就可以在JS端取到你定义的值:F('ControlClientID').f_state.Attributes.FormTable




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4