1

如何按索引获取所有列。就像我不知道我有多少列以及它们的 DataIndex 值是什么,那么如何获取它们。

实际上我想清除单元格,这就是为什么要查找行中每一列的索引。如果有任何其他方法可以清除行数据,请提供帮助。目前我已经通过使用下面的代码获得了行索引,

var 记录 = grid.getSelectionModel().getSelection()[0];

var index = store.indexOf(record);

现在我要做的第一件事是在单击按钮时清除所选行中单元格的内容,其次我想获取此所选行内的列的索引并使用它们的索引为它们设置任何值。

4

2 回答 2

0

我想如果单元格中出现特定值,您实际上想要更改某些内容 - 在您的网格中添加:

 <View>
     <ext:GridView runat="server" >
             <GetRowClass Fn="getRowClass" />
     </ext:GridView>
</View>   

然后getRowClass你可以为每一行做你想做的事情,比如:

function getRowClass(record) {
    var someVar = record.data.<columnIndex>;
    if (someVar == <someValue>) {
       do something
    }}
于 2013-08-08T07:50:50.037 回答
0

请参阅按钮的处理程序。

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!X.IsAjaxRequest)
        {
            Store store = this.GridPanel1.GetStore();
            store.DataSource = new object[] 
            { 
                new object[] { "test1", "test2", "test3" },
                new object[] { "test4", "test5", "test6" },
                new object[] { "test7", "test8", "test9" }
            };
        }
    }
</script>

<!DOCTYPE html>
<html>
<head runat="server">
    <title>Ext.NET v2 Example</title>

    <script>
        var setRecord = function (record, value) {
            var i,
                fields = record.fields.items,
                field;

            record.beginEdit();

            for (i = 0; i < fields.length; i++) {
                field = fields[i].name;

                if (field !== record.idProperty) {
                    record.set(field, value);
                }
            }

            record.endEdit();
        };

        var clear = function () {
            var grid = App.GridPanel1,
                selection = grid.getSelectionModel().getSelection(),
                i;

            for (i = 0; i < selection.length; i++) {
                setRecord(selection[i], "");
            }
        };

        var set = function () {
            var grid = App.GridPanel1,
                selection = grid.getSelectionModel().getSelection(),
                i;

            for (i = 0; i < selection.length; i++) {
                setRecord(selection[i], "new");
            }
        };
    </script>
</head>
<body>
    <form runat="server">
        <ext:ResourceManager runat="server" />

        <ext:Button runat="server" Text="Clear" Handler="clear" />

        <ext:Button runat="server" Text="Set" Handler="set" />

        <ext:GridPanel ID="GridPanel1" runat="server">
            <Store>
                <ext:Store runat="server">
                    <Model>
                        <ext:Model runat="server">
                            <Fields>
                                <ext:ModelField Name="test1" />
                                <ext:ModelField Name="test2" />
                                <ext:ModelField Name="test3" />
                            </Fields>
                        </ext:Model>
                    </Model>
                </ext:Store>
            </Store>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column runat="server" Text="Test1" DataIndex="test1" />
                    <ext:Column runat="server" Text="Test2" DataIndex="test2" />
                    <ext:Column runat="server" Text="Test3" DataIndex="test3" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>        
    </form>
</body>
</html>
于 2013-08-12T06:59:25.427 回答