DataList绑定多维数组的问题和解决方案

如果DataList的数据源是一个二维数组,怎么绑定?是否具有可行性呢?是重写方法还是有别的方法?希望看到的朋友给我留言。

    本文主要说一下一个DataList的数据源是二维数组的绑定的另一种解决方案。

    问题是这样的:我需要把xml数据中的2个节点数据(图片途径和图片名称)读出来,一般这个问题的解决办法都是先把整个数据读出来,读到一个一维数组,然后在拆分成几个一维数组,在分别对它们操作。不过这种问题的前提是DataList只需要显示一条数据,如果要显示2条数据呢?难道绑定到二个一维数组吗?不可能。

    解决办法是这样的,先按照常规方法使用DataBind()绑定一个数据(在一个数组里面),然后在模版列中加入一个Label,再用循环findcontrol()获取每一个节点,每获取一个给一个Label的Text赋值。如果有多条数据显示,也可以使用这个方法。这样就解决了多维数组的数据绑定问题。

    代码如下:

 private void dltStyleBind()
    {
        String[] SingleItemValue = this.LayoutToArray();//将xml所有数据读入一个数组中,后面把这个数组拆分。
        String[] picfromxml = new String[SingleItemValue.Length/3];
        for (int i = 0; i < SingleItemValue.Length/3; i++)
        {
            picfromxml[i] = SingleItemValue[(i * 3)+1];
        }

        this.dl_Pattern.DataSource = picfromxml;
        this.dl_Pattern.DataBind();
       
        String[] Layout = new String[SingleItemValue.Length/3];

        for (int i = 0; i < SingleItemValue.Length/3; i++)
        {
            Layout[i] = SingleItemValue[i * 3];
        }

        System.Web.UI.WebControls.Label lbl_Name;

        for (int i = 0; i < dl_Pattern.Items.Count; i++)
        {
            lbl_Name = (Label)dl_Pattern.Items[i].FindControl("l_Intro");
           
            //lbl_Name = (Label) .FindControl("lbl_Name");
            lbl_Name.Text = Layout[i];
        }

    }

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值