CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何为嵌套在DataList内部的DataGrid注册事件???高手请赐教

楼主lingyang(羽客)2005-01-03 19:18:57 在 .NET技术 / ASP.NET 提问

根据业务需要在DataList中嵌套2个DataGrid,每个DataGrid都需要编辑删除功能,我在DataList的Init和Load方法中试过,Init根本就不执行,Load方法执行时还找不到DataGrid(我的DataGrid是直接写在DataList的模板列中的)。不知道能不能实现这个功能,很着急,望高手不吝赐教!!! 问题点数:100、回复次数:5Top

1 楼Truly()回复于 2005-01-03 20:28:49 得分 50

<%@   Page   language="c#"   Codebehind="WebForm8.aspx.cs"   AutoEventWireup="false"   Inherits="DEMO1.WebForm8"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
  <HEAD>  
  <TITLE>WebForm8</TITLE>  
  <META   name="GENERATOR"   content="Microsoft   Visual   Studio   .NET   7.1">  
  <META   name="CODE_LANGUAGE"   content="C#">  
  <META   name="vs_defaultClientScript"   content="JavaScript">  
  <META   name="vs_targetSchema"   content="http://schemas.microsoft.com/intellisense/ie5">  
  </HEAD>  
  <BODY   ms_positioning="GridLayout">  
  <FORM   id="Form1"   method="post"   runat="server">  
  <ASP:DATALIST   id="DataList1"   runat="server">  
  <ITEMTEMPLATE>  
  <ASP:DATAGRID   id="test"   runat="server">  
  <COLUMNS>  
  <ASP:TEMPLATECOLUMN>  
  <ITEMTEMPLATE>  
  <ASP:BUTTON   id="tt"   runat="server"   onclick="DeleteCommand"   text="删除"   />  
  </ITEMTEMPLATE>  
  </ASP:TEMPLATECOLUMN>  
  </COLUMNS>  
  </ASP:DATAGRID>  
  </ITEMTEMPLATE>  
  </ASP:DATALIST>  
  </FORM>  
  </BODY>  
  </HTML>Top

2 楼Truly()回复于 2005-01-03 20:30:56 得分 50

#region   Web   窗体设计器生成的代码  
  ...  
  #endregion  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  ArrayList   al   =   new   ArrayList();  
  al.Add(1);  
  al.Add(2);  
  DataList1.DataSource   =   al;  
  DataList1.DataBind();  
  }  
   
  private   void   DataList1_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataListItemEventArgs   e)  
  {  
  DataSet   ds   =   new   DataSet();  
  SqlDataAdapter   cmd   =   new   SqlDataAdapter("select   *   from   employees",   new   SqlConnection("server=.;database=northwind;uid=sa;pwd=;"));  
  cmd.Fill(ds);  
  DataGrid   test   =   e.Item.FindControl("test")   as   DataGrid;  
  test.DataSource   =   ds;  
  test.DataBind();  
  }  
   
  protected   void   DeleteCommand(object   sender,   System.EventArgs   e)  
  {  
  Button   btn   =   sender   as   Button;  
  DataGridItem   item   =   btn.Parent.NamingContainer   as   DataGridItem;  
  Response.Write("DataGrid项索引:"   +   item.ItemIndex);  
   
  DataListItem   item2   =   item.Parent.Parent.NamingContainer   as   DataListItem;  
  Response.Write("<br>父DataList项索引:"   +   item2.ItemIndex);  
  }Top

3 楼Truly()回复于 2005-01-03 20:32:30 得分 0

请自行添加容错判断Top

4 楼lingyang(羽客)回复于 2005-01-04 16:45:17 得分 0

非常感谢!还有一个问题请教:在编辑行的时候要获取数据集中的某行某列的值,有一个写法是:  
  int   id   =   int.Parse(dataGrid1.DataKeys[e.Item.ItemIndex].ToString());  
  还有一种写法:  
  int   id   =   this.Ds1.employee[e.Item.ItemIndex].emp_id;  
  但有时候第一种写法会报错,说dataGrid1.DataKeys的数组索引越界,百思不得其解,还请高手指点!  
  Top

5 楼Truly()回复于 2005-01-04 19:55:09 得分 0

dataGrid1.DataKeys的数组索引越界  
   
  多为未指定datakeyfield  
   
  或者e.item.index值不对,  
  输出或跟踪一下e.item.index的值与datagrid1.Items.count比较一下Top

相关问题

  • datalist嵌套RadioButtonList
  • 嵌套的datagrid?
  • datagrid嵌套
  • 请教:DataList中嵌套DataGrid,如何控制DataGrid分页
  • 如何在DataList嵌套DataGrid中,读取DataGrid的数据.
  • 可不可以用datalist或者datagrid嵌套显示的表啊?
  • 求datagrid,repeater或datalist三级嵌套代码或教程。
  • (新手虚心提问!)Datalist中嵌套一个Datagrid
  • 讨论:datagrid、datalist、Repeater相互嵌套的效率问题(100分)
  • 讨论:datagrid、datalist、Repeater相互嵌套的效率问题(100分)

关键词

得分解答快速导航

  • 帖主:lingyang
  • Truly
  • Truly

相关链接

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

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...

社区焦点:

教你怎样用C#搞笑整人
最懒惰的程序员写的Cache
程序员如何掌握专业英语
Java栈与堆
分享:让人懊恼的面试
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo