根据业务需要在DataList中嵌套2个DataGrid,每个DataGrid都需要编辑删除功能,我在DataList的Init和Load方法中试过,Init根本就不执行,Load方法执行时还找不到DataGrid(我的DataGrid是直接写在DataList的模板列中的)。不知道能不能实现这个功能,很着急,望高手不吝赐教!!!
解决方案 »
- asp.net 动态生成站点地图文件(Web.sitemap)
- 从网上下载了一个三层架构的OA系统,如何着手开始研究啊?
- vs在调试网站时,打开的浏览器,能不能设置,比如设成MyIE?
- 在DataGridView中正在编辑的cell的动态绑定 在线等 哪位大哥帮忙?
- 怎么读取CVS文件,并把它显示到DATAGRID控件里,且以某些字段排序
- Dreamweaver中模板机制,在.net中有吗?或者什么类似的实现方法
- Server.UrlEncode 关于这个用法问题。
- 求职ASP。NET开发工作
- 论坛没什么人了。。。 问个问题摆起先
- 请问怎样修改以下路径?
- 用ASP.net怎么实现动态树
- 最近要用的帮忙看看怎么做?我只有20分了如果有分一定大奉送
<!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>
...
#endregionprivate 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);
}
int id = int.Parse(dataGrid1.DataKeys[e.Item.ItemIndex].ToString());
还有一种写法:
int id = this.Ds1.employee[e.Item.ItemIndex].emp_id;
但有时候第一种写法会报错,说dataGrid1.DataKeys的数组索引越界,百思不得其解,还请高手指点!
输出或跟踪一下e.item.index的值与datagrid1.Items.count比较一下