大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
GridView嵌套GridView,对子GridView及父GridView级联删除的问题
http://blog.csdn.net/amandag/archive/2007/05/31/1633395.aspx
利用GridView显示主细表并添加删除、打开、关闭功能(续)
http://dotnet.aspx.cc/article/f73eeaa9-2bdc-47fd-afd2-59f2fa4897f5/read.aspx
GridView的主从多级嵌套
http://hi.baidu.com/freezesoul/blog/item/4678e6dd90a0c6eb77c63867.html
第一层GridView开始
–>
<
asp:GridView ID
=
“
GridView1
“
OnRowDataBound
=
“
GridView1_RowDataBound
“
AutoGenerateColumns
=
false
runat
=
“
server
“
>
<
Columns
>
<
asp:TemplateField
>
<
ItemTemplate
>
<%
#Container.DataItem.ToString()
%>
<!–
第二层GridView开始
–>
<
asp:GridView ID
=
“
GridView2
“
OnRowDataBound
=
“
GridView2_RowDataBound
“
AutoGenerateColumns
=
false
runat
=
“
server
“
>
<
Columns
>
<
asp:TemplateField
>
<
ItemTemplate
>
<%
#Container.DataItem.ToString()
%>
<!–
第三层GridView开始
–>
<
asp:GridView ID
=
“
GridView3
“
AutoGenerateColumns
=
false
runat
=
server
>
<
Columns
>
<
asp:TemplateField
>
<
ItemTemplate
>
<%
#Container.DataItem.ToString()
%>
</
ItemTemplate
>
</
asp:TemplateField
>
</
Columns
>
</
asp:GridView
>
<!–
第三层GridView 结束
–>
</
ItemTemplate
>
</
asp:TemplateField
>
</
Columns
>
</
asp:GridView
>
<!–
第二层GridView结束
–>
</
ItemTemplate
>
</
asp:TemplateField
>
</
Columns
>
</
asp:GridView
>
<!–
第一层GridView结束
–>
++++++++++.cs代码++++++++++++++++
RowDataBound与1.x中的ItemDataBound也有一腿!
System;
using
System.Data;
using
System.Configuration;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Collections;
public
partial
class
_Default : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
this
.GridView1.DataSource
=
Al(
“
GridView1Item:
“
);
this
.GridView1.DataBind();
}
//
DataSource
protected
ArrayList Al(
string
GetStr)
{
ArrayList al
=
new
ArrayList();
for
(
int
i
=
0
;i
<
2
;i
++
)
{
al.Add(GetStr
+
i.ToString());
}
return
al;
}
//
GridView1_RowDataBound
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
{
GridView gv
=
(GridView)e.Row.FindControl(
“
GridView2
“
);
gv.DataSource
=
Al(
“
GridView2Item:
“
);
gv.DataBind();
}
}
//
GridView2_RowDataBound
protected
void
GridView2_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
{
GridView gv
=
(GridView)e.Row.FindControl(
“
GridView3
“
);
gv.DataSource
=
Al(
“
GridView3Item:
“
);
gv.DataBind();
}
}
}
//
绑定
public
void
bind()
{
string
sqlstr
=
“
select * from 表
“
;
sqlcon
=
new
SqlConnection(strCon);
SqlDataAdapter myda
=
new
SqlDataAdapter(sqlstr, sqlcon);
DataSet myds
=
new
DataSet();
sqlcon.Open();
myda.Fill(myds,
“
表
“
);
GridView1.DataSource
=
myds;
GridView1.DataKeyNames
=
new
string
[] {
“
id
“
};
//
主键
GridView1.DataBind();
sqlcon.Close();
}
=========================================
我已经通过FindControl找到这个gridview,可是现在的问题是我要给这个gridview里帮定的数据源是个新的,和外面的gridview数据源不是同一个!下面是我的部分代码:
<
asp:GridView ID
=
“
GridView1
“
runat
=
“
server
“
AutoGenerateColumns
=
“
False
“
OnRowDataBound
=
“
GridView1_RowDataBound
“
>
<
Columns
>
<
asp:BoundField DataField
=
“
type
“
HeaderText
=
“
type
“
/>
<
asp:TemplateField
>
<
ItemTemplate
>
<
asp:GridView ID
=
“
GridView2
“
runat
=
“
server
“
AutoGenerateColumns
=
“
False
“
EnableViewState
=
“
False
“
>
<
Columns
>
<
asp:BoundField DataField
=
“
pub_id
“
HeaderText
=
“
pub_id
“
/>
</
Columns
>
</
asp:GridView
>
</
ItemTemplate
>
</
asp:TemplateField
>
</
Columns
>
</
asp:GridView
>
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
{
e.Row.Cells[
1
].FindControl(
“
GridView2
“
);
}
}
可是在FindControl(“GridView2”)后只有一个DataBind()方法,并没有DataSource这个属性,要怎样才能给里面的那个GridView2指定一个新的数据源呢?
——————————————————–
GridView GRTemp=(GridView)e.Row.Cells[1].FindControl(“GridView2”);
GRTemp.DataSource=你的source;
GRTemp.DataBind();
========================================================================================
Repeater嵌套:
=======================================================================================
在绑定分类品名时,绑定分类下的产品
private
void
rptCategories_ItemDataBound(
object
sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
BLL.Products products
=
new
BLL.Products();
if
(e.Item.ItemType
==
ListItemType.Item
||
e.Item.ItemType
==
ListItemType.AlternatingItem)
{
Repeater rptProduct
=
(Repeater) e.Item.FindControl(
“
rptProduct
“
);
//
找到分类Repeater关联的数据项
DataRowView rowv
=
(DataRowView)e.Item.DataItem;
//
提取分类ID
int
CategorieId
=
Convert.ToInt32(rowv[
“
ID
“
]);
//
根据分类ID查询该分类下的产品,并绑定产品Repeater
rptProduct.DataSource
=
products.GetProductsByCategorieId(CategorieId);
rptProduct.DataBind();
}
}
=========================================================================================
gridView嵌套:
========================================================================================
protected
void
gvUserList_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
{
DataRowView rowv
=
(DataRowView)e.Row.DataItem;
Label lblCareer
=
(Label)e.Row.FindControl(
“
lblCareer
“
);
string
tmp_myCareer
=
rowv[
“
mycareer
“
].ToString().Trim();
}
}
转载于:https://www.cnblogs.com/qiantuwuliang/archive/2009/08/17/1548066.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184805.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...