| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1312 人关注过本帖
标题:又是一个绑定多维数组的为题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
只看楼主 加入收藏
ASP汽车
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2007-7-4
收藏
 问题点数:0 回复次数:7 
又是一个绑定多维数组的为题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··
string [] infoarray=chkchild.Split(new char[] { ';' });//将一串字符串遇到;就分割成新数组infoarray
for  (int i=0;i< infoarray.Length ; i++)
{
string [] infoarray2=infoarray[i].Split(new char[] { ',' });
}
比如传过来的字符串是
1,101,CW728957...C0,    1.00;1,171,CW728957...ss,   77.00;1,263,CW728957...jj,   56.00

我想用绑定显现为

厂商      件号            数量
101   CW728957...C0   1.00
171   CW728957...ss   77.00
263   CW728957...jj   56.00

请大家多多帮忙哦,谢谢
搜索更多相关主题的帖子: 多维 绑定 为题 string infoarray 
2007-12-12 12:18
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
■ 假设有如下二维字符串数组:

string[][] sqs = new string[3][]
                            {
                                new string[]{"101", "CW728957...C0", "1.00"},
                                new string[]{"171", "CW728957...ss", "77.00"},
                                new string[]{"263", "CW728957...jj", "56.00"}
                            };

■ 使用二维数组作为数据源绑定到某Web控件:

DataGrid1.DataSource = sqs;
DataGrid1.DataBind();

■ 页面源代码Web控件模板里使用绑定表达式的用法:

得到 sqs[x][0] 字符串(x 表示第一维,绑定后将自动由0开始向后取值):
<%# DataBinder.Eval(Container.DataItem, "[0]") %>
若第一维是 0,则上述表达式得到的字符串值为: 101

得到 sqs[x][1] 字符串:
<%# DataBinder.Eval(Container.DataItem, "[1]") %>
若第一维是 0,则上述表达式得到的字符串值为: CW728957...C0

如此类推。

欢迎加入 MVC 技术讨论群(新群:90093426)
2007-12-12 15:02
ASP汽车
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2007-7-4
收藏
得分:0 
版主讲的很好,可是我还不是很理解哦~~
string[][] sqs = new string[3][]
  {
    new string[3][]=chkchild.Split(new char[] { ';' });
                            };
这样写?

学习ASP中.....难啊......
2007-12-12 15:43
ASP汽车
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2007-7-4
收藏
得分:0 
struct item
    {
        private string m_厂商;
        private string m_件号;
        private string m_数量;
        public ServerFile(string 厂商, string 件号, string 数量)
        {
            this.m_厂商 = 厂商;
            this.m_件号= 件号;
            this.m_数量= 数量;
        }

        public string 厂商
        {
            get { return this.m_厂商; }
            set { this.m_厂商 = value; }
        }
        public string 件号
        {
            get { return this.m_件号; }
            set { this.m_件号 = value; }
        }
        public string 数量
        {
            get { return this.m_数量; }
            set { this.m_数量 = value; }
        }
    }
List<item> list = new List<item>();
string   []   infoarray=chkchild.Split(new   char[]   {   ';'   });//将一串字符串遇到;就分割成新数组infoarray
for     (int   i=0;i <   infoarray.Length   ;   i++)   
{
    string   []   infoarray2=infoarray[i].Split(new   char[]   {   ','   });
    item im = new item(infoarray2[0], infoarray2[1], infoarray2[2]);
    list.Add(im);
}

this.DataGrid1.DataSource = list;
this.DataGrid1.DataBind();


我这样可以用DataGrid绑定么???
如果可以.Aspx 要怎么写哦

学习ASP中.....难啊......
2007-12-12 15:53
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
绑定表达式若是使用 DataBinder.Evel() 来自行编写的话,
需要提供一些数据索引的依据,
若数据源是数组,
则提供下标:
<%# DataBinder.Eval(Container.DataItem, "[0]") %>

而使用类封装自然是非常值得推荐的方法,
这种方法,提供数据索引的依据自然是[属性名]了:
<%# DataBinder.Eval(Container.DataItem, "厂商") %>

欢迎加入 MVC 技术讨论群(新群:90093426)
2007-12-12 18:32
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
对于具有“集合”性质的类(例如您的例程),
若您打算使用类进行封装,
下述主要讲述一种创建这一类“集合”性质的类的封装思想,仅供参考,
若您对这种封装思想感觉不喜欢或者觉得麻烦(事实上并不麻烦),
仍然可以坚持自己的方法。

1. 实现单位实体:

  /// <summary>
    /// 订单信息类
  /// </summary>
    public class OrderInfo
    {
        public OrderInfo() { }

        /// <summary>
        /// 创建新的订单信息
    /// </summary>
        /// <param name="manufacturerId">厂商ID</param>
        /// <param name="number">件号</param>
        /// <param name="amount">数量</param>
        public OrderInfo( string manufacturerId, string number, int amount )
        {
            _manufacturerId = manufacturerId;
            _number = number;
            _amount = amount;
        }

        /// <summary>
        /// 厂商ID
        /// </summary>
        private string _manufacturerId;

        public string ManufacturerID
        {
            get { return _manufacturerId; }
            set { _manufacturerId = value; }
        }

        /// <summary>
        /// 件号
    /// </summary>
        private string _number;

        public string Number
        {
            get { return _number; }
            set { _number = value; }
        }

        /// <summary>
        /// 数量
    /// </summary>
        private int _amount;

        public int Amount
        {
            get { return _amount; }
            set { _amount = value; }
        }
    }


2. 实现订单集合类

  /// <summary>
    /// 订单集合类(实现 ICollection 接口,所以可以使用该类的对象作为数据源)
  /// </summary>
    public class OrderInfoCollection : ICollection<OrderInfo>
    {
        private List<OrderInfo> items = new List<OrderInfo>();

        public OrderInfo this[int index]
        {
            get
            {
                return items[index];
            }
        }

        #region ICollection<OrderInfo> 成员

    public void Add( OrderInfo item )
        {
            items.Add(item);
        }

        public void Clear()
        {
            items.Clear();
        }

        public bool Contains( OrderInfo item )
        {
            return items.Contains(item);
        }

        public void CopyTo( OrderInfo[] array, int arrayIndex )
        {
            items.CopyTo(array, arrayIndex);
        }

        public int Count
        {
            get { return items.Count; }
        }

        public bool IsReadOnly
        {
            get { return false; }
        }

        public bool Remove( OrderInfo item )
        {
            return items.Remove(item);
        }

        #endregion

        #region IEnumerable<OrderInfo> 成员

    public IEnumerator<OrderInfo> GetEnumerator()
        {
            foreach ( OrderInfo var in items )
            {
                yield return var;
            }
        }

        #endregion

        #region IEnumerable 成员

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }

        #endregion
    }


3. 实现订单类

  /// <summary>
    /// 订单类
  /// </summary>
    public class Orders
    {
        private OrderInfoCollection items;

        public OrderInfoCollection Items
        {
            get { return items; }
            set { items = value; }
        }
    }

欢迎加入 MVC 技术讨论群(新群:90093426)
2007-12-12 19:02
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
有了上述的封装后,使用却是相当方便的:

            //创建订单对象
            Orders orders = new Orders();
            
            //添加新订单
            OrderInfo info1 = new OrderInfo("101", "CW728957...C0", 1);
            OrderInfo info2 = new OrderInfo("171", "CW728957...ss", 77);
            OrderInfo info3 = new OrderInfo("263", "CW728957...jj", 56);
            orders.Items.Add(info1);
            orders.Items.Add(info2);
            orders.Items.Add(info3);

            //将集合作为数据源提供给 Web 控件
            DataGrid1.DataSource = orders.Items;
            DataGrid1.DataBind();

            // aspx 页面文件中取得对象的值
            <%# DataBinder.Eval(Container.DataItem, "ManufacturerID") %>  //取得厂商ID
            <%# DataBinder.Eval(Container.DataItem, "Number") %>  //取得件号
            <%# DataBinder.Eval(Container.DataItem, "Amount") %>  //取得数量

欢迎加入 MVC 技术讨论群(新群:90093426)
2007-12-12 19:11
ASP汽车
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2007-7-4
收藏
得分:0 
版主真是好人

学习ASP中.....难啊......
2007-12-13 10:37
快速回复:又是一个绑定多维数组的为题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044888 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved