gridview 嵌套datalist的问题
我想实现的效果是;品牌 :型号 型号 型号
品牌 :型号 型号 型号
(品牌和型号的个数都是不定的)
我的前台代码是
<asp:GridView ID="ParentLink" runat="server" AutoGenerateColumns="False" GridLines="None" ShowHeader="False" OnRowDataBound="ParentLink_RowDataBound">
<Columns>
<asp:BoundField DataField="ID" ShowHeader="False" Visible="False" />
<asp:TemplateField>
<ItemTemplate>
<%#Eval("Brand")%>
<asp:DataList ID="ChildDataList" runat="server" RepeatColumns="5" >
<ItemTemplate>
<a href="" target="_blank"><%#Eval("Type")%></a>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
CS 代码是;
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ESMS.BLL.Brand brand = new ESMS.BLL.Brand();
ds= brand.GetList("");
this.ParentLink.DataSource = ds;
this.ParentLink.DataKeyNames = new string[] { "ID" };
this.ParentLink.DataBind();
}
protected void ParentLink_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string id = "";
id = this.ParentLink.DataKeys[e.Row.RowIndex].Value.ToString();
int ID = Convert.ToInt16(id);
DataSet ds1 = new DataSet();
ESMS.BLL.Type type = new ESMS.BLL.Type();
DataList dl = (DataList)e.Row.FindControl("ChildDataList");
ds1 = type.GetList(ID);
dl.DataSource = ds1;
dl.DataBind();
}
}
现在的效果是这样的:
品牌 :型号
品牌 :型号
一个品牌下面一个型号?请高手指点
--------------------编程问答-------------------- 为什么不用Repeater嵌套Repeater呢?
Repeater1.DataSource=……;
Repeater2.DataSource=……;
Repeater1.DataBind();
Repeater2.DataBind();
分别查找全部信息 和单独一条记录的类别
用隐藏控件记录 品牌Id 作为Repeater2数据源的参数
绑定就行了吧
--------------------编程问答-------------------- 不用嵌套啊,直接弄个动态 gridview就可以了,省很多事
补充:.NET技术 , ASP.NET