如何获得单个表格单元格的值?

时间:2015-07-15 18:40:35

标签: javascript sapui5

我有一个表(sap.ui.table.Table)并且一直试图获取单个单元格值,但无法弄清楚。

在我的表格中,我使用了rowSelectionChange,如此:

rowSelectionChange: function (e) {                 
    var idx = e.getParameter('rowIndex');
    if (oTable.isIndexSelected(idx)) {
        var cxt = oTable.getContextByIndex(idx);
        var path = cxt.sPath;
        var obj = oTable.getModel().getProperty(path);
        console.log(obj);
    }
}

当我选择一行时,我在控制台中得到以下输出:

[object Object] {
   index: 1,
   name: "name"
}

我想知道是否有办法检索索引值。在这种情况下1.此外,我希望此数据显示行中的任何位置是否有点击。我用cellClick尝试了这个,但我没有在控制台中获得任何输出。

这是我的JSBin

1 个答案:

答案 0 :(得分:2)

要获取索引的值,您只需调用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

namespace ConsoleApplication2
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            El1 el1 = new El1()
            {
                el2 = new El2()
                {
                    el3 = new El3() {
                        el4 = new El4() {
                        }

                    }
                }
            };

            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
            ns.Add("u4", "http://URI4");
            ns.Add("u3", "http://URI3");
            ns.Add("u2", "http://URI2");
            ns.Add("", "http://URI1");

            XmlSerializer serializer = new XmlSerializer(typeof(El1));

            StreamWriter writer = new StreamWriter(FILENAME);
            serializer.Serialize(writer, el1, ns);
            writer.Flush();
            writer.Close();
            writer.Dispose();

        }
    }

    [XmlRoot("el1", Namespace = "http://URI1")]
    public class El1
    {
        [XmlElement("el2", Namespace = "http://URI2")]
        public El2 el2 { get; set; }
    }
    [XmlRoot("el2")]
    public class El2
    {
        [XmlElement("el3", Namespace = "http://URI3")]
        public El3 el3 { get; set; }
    }
    [XmlRoot("el3", Namespace = "http://URI3")]
    public class El3
    {
        [XmlElement("el4", Namespace = "http://URI4")]
        public El4 el4 { get; set; }
    }
    [XmlRoot("el4", Namespace = "http://URI1")]
    public class El4
    {
    }
}
​

cellClick事件被标记为实验性事件,但您可以尝试将以下事件处理程序添加到表中:

console.log(obj.index);