FineUI 官方论坛

标题: 动态生成的模板列,如何提取值 [打印本页]

作者: lilyraint    时间: 2013-7-17 17:25
标题: 动态生成的模板列,如何提取值
动态生成模板列:
    /// <summary>
    /// 创建TextBox类型的Grid列
    /// </summary>
    public class TemplateTextBox : ITemplate
    {
        public string ControlID = "", FieldName = "";
        public TemplateTextBox()
        {
        }
        public TemplateTextBox(string ControlID, string FieldName)
        {
            this.ControlID = ControlID;
            this.FieldName = FieldName;
        }
        public void InstantiateIn(System.Web.UI.Control container)
        {
            AspNet.TextBox labGender = new AspNet.TextBox();
            labGender.ID = this.ControlID;
            labGender.BorderStyle = AspNet.BorderStyle.None;
            labGender.DataBinding += new EventHandler(TemplateTextBox_DataBinding);
            container.Controls.Add(labGender);
        }
        private void TemplateTextBox_DataBinding(object sender, EventArgs e)
        {
            AspNet.TextBox labGender = (AspNet.TextBox)sender;
            IDataItemContainer dataItemContainer = (IDataItemContainer)labGender.NamingContainer;
            labGender.Text = Convert.ToString(((DataRowView)dataItemContainer.DataItem)[this.FieldName]);
        }
    }
        protected void Page_Init(object sender, EventArgs e)
        {
             tf = new FineUI.TemplateField();
            tf.HeaderText = "角色名称";
            tf.Width = Unit.Pixel(150);
            tf.ItemTemplate = new FYMat.Interface.TemplateTextBox("RoleName", "RoleName");
            Grid1.Columns.Add(tf);

            Grid1.DataKeyNames = new string[] { "RoleName" };
        }
在按钮中提取ROleName列的值,语句如下:
                    AspNet.TextBox TextBoxRoleName = (AspNet.TextBox)Grid1.Rows[i].FindControl("RoleName");
                    string RoleName = TextBoxRoleName.Text;

报错信息为:未将对象引用设置到对象的实例;
调试发现:TextBoxRoleName取出为null
怎么办呢?



作者: lilyraint    时间: 2013-7-17 17:27
坐等高手指教
作者: lilyraint    时间: 2013-7-18 09:32
哪位给指点一下啊
作者: lilyraint    时间: 2013-7-18 10:09
刚发现,动态生成的模板列在TemplateContainers里头不存在,这应该是导致FIndControl找不到的原因吧,可是怎么才能使TemplateContainers里 有这个后台添加的模板列呢?
作者: lilyraint    时间: 2013-7-18 14:35
没有人知道吗?sanshi大侠进来看看啊
作者: 铁打的硬盘    时间: 2013-8-25 20:25
lilyraint 发表于 2013-7-18 14:35
没有人知道吗?sanshi大侠进来看看啊

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 行动意随    时间: 2013-8-25 20:30
试试禁用ViewState
作者: 铁打的硬盘    时间: 2013-8-25 20:48
禁用ViewState 不行




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