CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

DataGrid动态增加column后的DataGridItemEventArg事件处理函数调用不了?

楼主oldjackyone(老兔子)(她妈妈说:以为你真的很帅么???)2004-09-01 12:31:28 在 .NET技术 / ASP.NET 提问

DataGrid动态增加column后,怎么在动态增加的column列中,不能调用DataGridItemEventArgs事件。  
   
   
   
  ::::::::datagrid   ::::::::  
   
  <asp:datagrid   id="Data"   runat="server"   Width="100%"   OnDeleteCommand="Data_DeleteCommand"   HorizontalAlign="Center"  
  HeaderStyle-VerticalAlign="Middle"   HeaderStyle-Height="14px"   BackColor="White"   BorderStyle="Double"  
  BorderColor="Transparent"   AllowSorting="True"   AutoGenerateColumns="False"   CellPadding="0"  
  GridLines="Horizontal"   BorderWidth="3px"   Font-Names="宋体"   OnItemCommand="OnItemCommand_onClick">  
  <EditItemStyle   BorderWidth="1px"   CssClass="input"   VerticalAlign="Middle"   BackColor="LightGray"></EditItemStyle>  
  <AlternatingItemStyle   Wrap="False"></AlternatingItemStyle>  
  <ItemStyle   Wrap="False"   BorderWidth="0px"   BorderColor="Silver"   BackColor="White"></ItemStyle>  
  <HeaderStyle   Font-Bold="True"   Wrap="False"   Height="40px"   BorderWidth="0px"   VerticalAlign="Middle"  
  BackColor="Silver"></HeaderStyle>  
  <Columns>  
  <asp:TemplateColumn   HeaderText="取消执行">  
  <HeaderStyle   Wrap="False"   HorizontalAlign="Center"   Width="100px"   VerticalAlign="Middle"></HeaderStyle>  
  <ItemStyle   Wrap="False"   HorizontalAlign="Center"   VerticalAlign="Middle"></ItemStyle>  
  <ItemTemplate>  
  <asp:LinkButton   runat="server"   Text="取消执行"   OnLoad="linkBtn_OnLoad"   CommandName="Delete"   CausesValidation="false"></asp:LinkButton>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  <asp:BoundColumn   Visible="False"   DataField="id"   ReadOnly="True"   HeaderText="ID号"></asp:BoundColumn>  
  <asp:BoundColumn   DataField="missionName"   HeaderText="任务名称">  
  <HeaderStyle   Wrap="False"   Width="100px"></HeaderStyle>  
  <ItemStyle   Wrap="False"></ItemStyle>  
  <FooterStyle   Wrap="False"></FooterStyle>  
  </asp:BoundColumn>  
  <asp:HyperLinkColumn   DataTextField="name"   HeaderText="执行人">  
  <HeaderStyle   Wrap="False"   Width="80px"></HeaderStyle>  
  <ItemStyle   Wrap="False"></ItemStyle>  
  <FooterStyle   Wrap="False"></FooterStyle>  
  </asp:HyperLinkColumn>  
     
  </Columns>  
  </asp:datagrid>  
   
   
  ::::::::事件函数::::::::  
  public   void   OnItemCommand_onClick(   object   sender,   DataGridCommandEventArgs   e   )  
  {  
  Response.Write(e.Item.DataSetIndex.ToString());  
  Response.End();  
  }  
   
   
  ::::::::动态TemplateItem生成的类::::::::  
   
  namespace   ITProject  
  {  
   
  public   class   CTemplateColumn:ITemplate  
  {  
  private   string   colname;  
  private   string   colnameTwo;  
  public   CTemplateColumn(string   cname,   string   cnameTwo)  
  {  
  colname=cname;  
  colnameTwo   =   cnameTwo;  
  }  
   
  //为了使用接口必须实现的方法  
  public   void   InstantiateIn(Control   container)                
  {  
  LinkButton   l1   =   new   LinkButton();  
  l1.DataBinding   +=   new   EventHandler(this.OnDataBindingTwo);  
  container.Controls.Add(l1);  
   
  LinkButton   l   =   new   LinkButton();  
  l.DataBinding   +=   new   EventHandler(this.OnDataBinding);  
  container.Controls.Add(l);  
  }  
   
  public   void   OnDataBinding(object   sender,   EventArgs   e)  
  {  
  LinkButton   l   =   (LinkButton)   sender;  
  DataGridItem   container   =   (DataGridItem)l.NamingContainer;  
  l.Text   =   ((DataRowView)container.DataItem)[colname].ToString();  
  }  
   
  public   void   OnDataBindingTwo(object   sender,   EventArgs   e)  
  {  
  LinkButton   l1   =   (LinkButton)   sender;  
  DataGridItem   container   =   (DataGridItem)l1.NamingContainer;  
  l1.Text   =   ((DataRowView)container.DataItem)[colnameTwo].ToString();  
  }  
   
  }  
   
  }  
   
  为什么事件OnItemCommand_onClick不起任何作用?如果直接在DataGrid里面添加一个新的TemplateItem...它就可以正常执行,不知道是什么原因,谢谢。 问题点数:0、回复次数:9Top

1 楼saucer(思归)回复于 2004-09-01 13:20:41 得分 0

try   to   re-create   the   column   upon   postback   in   LoadViewState,   see  
   
  DataGrid   Web   伺服器控制項的常見問題  
  http://www.microsoft.com/taiwan/msdn/library/2002/Feb-2002/whitepaper/vbtchtopquestionsaboutaspnetdatagridservercontrol.htm  
  Top

2 楼rickjelly2004(每逢佳节倍思亲-------------快乐生活)回复于 2004-09-01 13:23:42 得分 0

upTop

3 楼dxphero(火鸟hero)回复于 2004-09-01 13:57:57 得分 0

调试一下Top

4 楼dxphero(火鸟hero)回复于 2004-09-01 13:59:21 得分 0

看看是否执行OnItemCommand_onClick事件  
  如果不行证明你没有触发他Top

5 楼oldjackyone(老兔子)(她妈妈说:以为你真的很帅么???)回复于 2004-09-01 16:18:54 得分 0

是没有执行OnItemCommand_onClick,但我都写的对的呀,怎么就会不执行OnItemCommand_onClick?如果直接添加一个TemplateItem在DataGrid里面,那么,它将会执行OnItemCommand_onClick事件.Top

6 楼zdm2008(软件民工)回复于 2004-09-01 16:48:59 得分 0

这么高深的问题呀,我还没研究过。Top

7 楼zdm2008(软件民工)回复于 2004-09-01 16:49:51 得分 0

我现在很少做WEB开发了,改做VC++了,不好意思。Top

8 楼oldjackyone(老兔子)(她妈妈说:以为你真的很帅么???)回复于 2004-09-01 17:38:39 得分 0

我自己顶,帮个忙啦,各位高手们。Top

9 楼flashasp(flashasp)回复于 2004-09-02 09:19:25 得分 0

友情UP^_^Top

相关问题

  • 函数调用
  • 函数调用
  • 调用函数
  • 函数调用
  • 函数调用
  • 函数调用?
  • 函数调用函数
  • 子函数调用?
  • 函数的调用
  • 函数的调用

关键词

  • 执行
  • datagrid
  • onitemcommand
  • templateitem
  • linkbutton
  • 事件
  • 动态增加
  • column
  • container
  • sender

得分解答快速导航

  • 帖主:oldjackyone

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo