none
detailsview databound中的数组问题。 RRS feed

  • 问题

  • 数据库中有个人员字段,是按照 张三\n李四\n王五\n 这样的形式出现的 前台用detailsview的 Eval('姓名字段')绑定后就能把它显示成人名+回车的形式,我把它split('\n')成数组,然后在前台显示,可是因为事件是在databound中,所以数组循环时都要将数据成倍出现,请问如何解决?
    protected string Qt_Ljkf = string.Empty;//累计扣分
    protected void DetailsView1_DataBound(object sender, EventArgs e)
            {   
                DateTime riqi = Convert.ToDateTime(DetailsView1.DataKey[1]);//数据库日期字段
                string str_Bzry=DetailsView1.DataKey[3].ToString();//数据库人员字段(以'\n'分割存储)
                string str_Ljkf = DetailsView1.DataKey[4].ToString();//数据库分值字段(以'\n'分割存储)
                string[] arr_Ljfk = str_Ljkf.Split('\n');
                string[] arr_Bzry=str_Bzry.Split('\n');
                    Qt_Ljkf += '\n' + "<label onmouseover=\"cc(this,'我想知道这里如何把arr_Bzry写进去','" +开始日期 + "','" + 结束日期 + "')\" onmouseout=\"document.all.pop.style.display='none'\">" + str_Ljkf + "</label>";//cc是个前台的java方法,有三个参数cc(参数1,参数2,参数3)
                    Qt_Ljkf = Qt_Ljkf.TrimStart('\n');
            }
    2010年3月1日 1:56

答案

  • 你好!

    这可能是因为你在给 Qt_Ljkf 赋值时使用了 += 你把 += 换成 = 试试。

    关于将数组写字符串,参考下面的方式。

    string[] array = new string[]{"2010-01-01", "2010-02-02"};
    string jsMethod = string.Format("cc(this, '{0}', {1}", array[0], array[1]);
    string fullHtml = string.Format("<label onmouseover=\"{0}\" onmouseout=\"document.all.pop.style.display='none'\">", jsMethod);

    知识改变命运,奋斗成就人生!
    • 已标记为答案 杜宏宇 2010年3月1日 3:50
    2010年3月1日 2:15
    版主