FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2700|回复: 7
打印 上一主题 下一主题

动态生成的模板列,如何提取值

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-17 17:25:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
动态生成模板列:
    /// <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
怎么办呢?


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

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
7#
发表于 2013-8-25 20:30:06 | 只看该作者
试试禁用ViewState
8#
发表于 2013-8-25 20:48:16 | 只看该作者
禁用ViewState 不行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-9-29 06:10 , Processed in 0.045298 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表