FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

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

关于Grid动态添加TemplateField以及其中ASP.net控件的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-26 09:32:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是想根据条件,动态添加TemplateField并在其中加入asp。net控件Textbox,自己写的代码如下:
  1.            var templateField = new TemplateField();
  2.            templateField.HeaderText = "部门";
  3.            templateField.Width = 150;

  4.            var textbox = new System.Web.UI.WebControls.TextBox();
  5.            textbox.ID = "txt1";
  6.            textbox.Width = 130;
  7.            textbox.Text = "<%# Eval('部门') %>";

  8.            templateField.ItemTemplate.InstantiateIn(textbox);
  9.            grid1.Columns.Add(templateField);
复制代码
但是编译的时候一直在“ templateField.ItemTemplate.InstantiateIn(textbox);
”处报“未将对象引用设置到对象的实例”,是我用的方法不对嘛?因为事例当中,只有动态添加BoundField,所以还要请三石大人请教!谢谢
沙发
发表于 2012-6-27 14:57:15 | 只看该作者
板凳
发表于 2012-6-27 14:58:46 | 只看该作者
我增加了一个示例,已经Check in:79624

关键代码:
  1. public class GenderTemplate : ITemplate
  2.     {

  3.         public void InstantiateIn(System.Web.UI.Control container)
  4.         {
  5.             AspNet.Label labGender = new AspNet.Label();
  6.             labGender.DataBinding += new EventHandler(labGender_DataBinding);
  7.             container.Controls.Add(labGender);
  8.         }

  9.         private void labGender_DataBinding(object sender, EventArgs e)
  10.         {
  11.             AspNet.Label labGender = (AspNet.Label)sender;

  12.             IDataItemContainer dataItemContainer = (IDataItemContainer)labGender.NamingContainer;

  13.             int gender = Convert.ToInt32(((DataRowView)dataItemContainer.DataItem)["Gender"]);
  14.            
  15.             labGender.Text = (gender == 1) ? "男" : "女";
  16.         }

  17.     }



  18. ExtAspNet.TemplateField tf = new TemplateField();
  19.             tf.Width = Unit.Pixel(100);
  20.             tf.HeaderText = "性别(模板列)";
  21.             tf.ItemTemplate = new GenderTemplate();
  22.             Grid1.Columns.Add(tf);
复制代码


地板
 楼主| 发表于 2012-6-27 15:04:56 | 只看该作者
sanshi 发表于 2012-6-27 14:58
我增加了一个示例,已经Check in:79624

关键代码:

非常感谢啊,永远支持ExtAspNet!
5#
发表于 2012-8-13 17:06:34 | 只看该作者
存在一个问题啊,我怎么获取呢?
6#
发表于 2012-8-24 03:41:05 | 只看该作者
本帖最后由 (^o^) 于 2012-8-24 03:46 编辑

linkButton, onclinetClick事件怎么绑定,主要问题是我采用直接绑定DataTable的方式,那个WINDOW控件就没有JS脚本可以调用的接口吗?
7#
发表于 2012-10-9 09:29:44 | 只看该作者
如何获取该列值,急!!!
8#
发表于 2012-10-9 13:34:35 | 只看该作者
类似这样:
  1. GridRow row = Grid1.Rows[i];
  2.                 System.Web.UI.WebControls.TextBox tbxGroupName = (System.Web.UI.WebControls.TextBox)row.FindControl("tbxGroupName");
复制代码
http://demo.extasp.net/#/grid/grid_edit.aspx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-27 04:43 , Processed in 0.045483 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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