0

我有一个 RadGrid,它有一列Loss Amount,我希望能够对其进行排序。目前它确实排序,但仅按字符串值排序。我的列类型为 GridNumericColumn。我该怎么做?

我的代码在下面列出。我还在格式化列文本以显示货币。我确实注意到的一件事是我从 Format 方法返回了一个字符串值。这可能是原因吗?

柱子:

<rad:GridNumericColumn DataField="Loss Amount"
                       UniqueName="Loss Amount"
                       HeaderText="Loss Amount"
                       SortExpression="Loss Amount" \>
    <HeaderStyle Width="140">
    <ItemStyle Width="140" HorizontalAlign="Right"ForeColor="Maroon" />
</rad:GridNumericColumn>`

NeedDataSource 事件:

protected void grdCustomerAssignments_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    GetAssignments();
    grdCustomerAssignments.DataSource = Assignments;
}

private void GetAssignments()
{
    if (Assignments == null)
        Assignments = new DataTable();

    SPList list = SPContext.Current.Web.Lists["Listings"];
    SPView view = GetCustomerView();
    SPListItemCollection items = list.GetItems(view);

    Assignments = items.GetDataTable();

    foreach (DataColumn column in Assignments.Columns)
    {
        column.ColumnName = XmlConvert.DecodeName(column.ColumnName);
    }

    Assignments.AcceptChanges();
}

ItemDataBound 事件:

protected void grdCustomerAssignments_ItemDataBound(object sender, GridItemEventArgs e)
{
    FormatCurrency(item["Loss Amount"].Text);
}

protected string FormatCurrency(string text)
{
    if (text.Length > 3)
    {
        string result = String.Empty;
        char[] tmpArray = text.ToCharArray();
        Array.Reverse(tmpArray);
        string tmpString = new String(tmpArray);

        while (tmpString.Length > 3)
        {
            string threeChars = tmpString.Substring(0, 3);
            result = String.Concat(result, threeChars, ",");
            tmpString = tmpString.Remove(0, 3);
        }

        result = String.Concat(result, tmpString);
        tmpArray = result.ToCharArray();
        Array.Reverse(tmpArray);
        text = new String(tmpArray);
    }
    return String.Concat("$ ", text);
}
4

1 回答 1

0

还要检查源字段是否为数字数据类型,而不是字符串。您可以测试是否可以轻松启用编辑 - 如果您编辑项目,如果尝试将字符串值分配给 Telerik 数字编辑器,则会引发异常。

于 2010-02-01T15:10:29.950 回答