FineUI 官方论坛

标题: 关于Grid动态添加TemplateField以及其中ASP.net控件的问题 [打印本页]

作者: 大鸟打小鸟    时间: 2012-6-26 09:32
标题: 关于Grid动态添加TemplateField以及其中ASP.net控件的问题
就是想根据条件,动态添加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,所以还要请三石大人请教!谢谢
作者: sanshi    时间: 2012-6-27 14:57
动态添加模板列就不是这么简单了,可以参考别人的文章:
http://www.mindfiresolutions.com ... dynamically-841.php
http://aspalliance.com/1125_Dyna ... _Insert_Options.all
http://www.codeproject.com/Artic ... dynamically-in-a-gr
作者: sanshi    时间: 2012-6-27 14:58
我增加了一个示例,已经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
sanshi 发表于 2012-6-27 14:58
我增加了一个示例,已经Check in:79624

关键代码:

非常感谢啊,永远支持ExtAspNet!
作者: 四维空间    时间: 2012-8-13 17:06
存在一个问题啊,我怎么获取呢?
作者: (^o^)    时间: 2012-8-24 03:41
本帖最后由 (^o^) 于 2012-8-24 03:46 编辑

linkButton, onclinetClick事件怎么绑定,主要问题是我采用直接绑定DataTable的方式,那个WINDOW控件就没有JS脚本可以调用的接口吗?

作者: £快乐→无罪    时间: 2012-10-9 09:29
如何获取该列值,急!!!
作者: sanshi    时间: 2012-10-9 13:34
类似这样:
  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 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4