0

ドロップダウン リストのテキストをフォーマットしようとしていますが、何も機能していないようです。以下は私のコードです:

ドロップダウンリスト:

<asp:DropDownList runat="server" ID="ddlSalary" CssClass="ddlBox" 
    CausesValidation="true" AutoPostBack="true" 
    onselectedindexchanged="ddlSalary_SelectedIndexChanged" />

コードビハインド:

if (!IsPostBack)
    {
        ddlSalary.DataSource = Placements.DropDownPopulating("Placement_Salary_From");
        ddlSalary.DataBind();

        ddlSalary.Items.Insert(0, new ListItem("-- Salary --", "0"));

結果:

6.0000
200.0000
1000.0000

しかし、私はしたいです:

£6
£200
£1000

私は使用してみました:

ddlSalary.DataTextFormatString = "{0:C}";

編集

ドロップダウン リストの作成:

public static List<string> DropDownPopulating(string selectedFilter)
    {
        List<string> returnVal = new List<string> { };
        using (SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["websiteContent"].ConnectionString))
        {
            sqlCon.Open();
            string SQL = "SELECT DISTINCT " + selectedFilter + " FROM Placements";
            using (var CMD = new SqlCommand(SQL, sqlCon))
            {
                using (var DR = CMD.ExecuteReader())
                {
                    while (DR.Read())
                    {
                        returnVal.Add(DR[selectedFilter].ToString());
                    }
                }
            }
            sqlCon.Close();
        }
        return returnVal;
    }
4

2 に答える 2

3

numericフォーマットを機能させたい場合は、データ型を使用する必要があります。

public static List<T> DropDownPopulating<T>(string selectedFilter)
{
    var returnVal = new List<T>();
    var connectionString = ConfigurationManager.ConnectionStrings["websiteContent"].ConnectionString;
    using (var con = new SqlConnection(connectionString))
    using (var cmd = con.CreateCommand())
    {
        con.Open();
        cmd.CommandText = "SELECT DISTINCT " + selectedFilter + " FROM Placements";
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                // if you are using .NET 4.5
                returnVal.Add(reader.GetFieldValue<T>(reader.GetOrdinal(selectedFilter)));

                // if you are using .NET 4.0 or older:
                // returnVal.Add((T)reader.GetValue(reader.GetOrdinal(selectedFilter)));
            }
        }
    }
    return returnVal;
}

その後:

ddlSalary.DataSource = Placements.DropDownPopulating<decimal>("Placement_Salary_From");
ddlSalary.DataTextFormatString = "{0:C}";
ddlSalary.DataBind();
于 2013-04-07T17:39:28.400 に答える
0

このクエリを使用してデータを取得します.....

  select '$'+Cast((Cast(Price as int))as varchar) from TableName
于 2013-04-07T17:12:42.453 に答える