现在的位置: 首页 > 综合 > 正文

GridView嵌套DataList

2012年07月22日 ⁄ 综合 ⁄ 共 1504字 ⁄ 字号 评论关闭
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" BorderWidth="0" ShowHeader="false" OnRowDataBound="GridView1_RowDataBound">
   <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("SortID") %>' Visible="false"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <%# Eval("SortName")%>
                <asp:DataList ID="DataList2" runat="server" RepeatColumns="3" RepeatDirection="Horizontal">
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click" CommandArgument='<%# Eval("SortID")%>'><%# Eval("SortName")%></asp:LinkButton>&nbsp;&nbsp;
                    </ItemTemplate>
                </asp:DataList>
                <br />
            </ItemTemplate>
        </asp:TemplateField>
   </Columns>
</asp:GridView>

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataSource = DBFactory.ZhDBGetDataSet(" select * from Sort where ParentSort=0 ");
        GridView1.DataBind();
    }
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //在有数据的情况下
    if (e.Row.RowIndex > -1)
    {
        DataList myDataList = e.Row.FindControl("DataList2") as DataList;
        Label myLabel = e.Row.Cells[0].FindControl("Label1") as Label;
        myDataList.DataSource = DBFactory.ZhDBGetDataSet(" select * from Sort where ParentSort=" + myLabel.Text + " ");
        myDataList.DataBind();
    }
}

抱歉!评论已关闭.