2016-03-23 3 views
1

2列を表示しているリストボックスを作成する必要があります。最初は数値ステータスで、次は説明です。ステータスは最大3つの整数にすることができます。リストボックスの2列の書式設定。 1は数字、もう1文字は

私が得たいのは、ステータスが右揃えになり、その後にスペースとその説明が続きます。

これまでの私のコード

Code Description 
    1 Descrition for code 1 
10 Descrition for code 10 
100 Descrition for code 100 

効果で:

cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "prc_GetData"; 
cmd.Parameters.Add(new OracleParameter("piCompany", OracleDbType.Char, "01", ParameterDirection.Input)); 
cmd.Connection = con; 

OracleDataAdapter da = new OracleDataAdapter(); 
DataTable dt = new DataTable(); 

con.Open(); 
da.SelectCommand = cmd; 
da.Fill(dt); 

DataColumn dc = new DataColumn("NewCol"); 
dc.Expression = string.Format("{0}+' '+{1}", "NumberCol", "TextCol"); 
dt.Columns.Add(dc); 

ListBox1.DataSource = dt; 
ListBox1.DataValueField = "NumberCol"; 
// ListBox1.DataTextField = (String.Format("{0} {1}", "NumberCol", "TextCol")); 
ListBox1.DataTextField = ("NewCol"); 
ListBox1.DataBind(); 
+0

。 – Bikee

答えて

0

あなたはそれを実行するためのGridViewを使用する必要があります。この方法であなたは、テーブル構造を持っています。 DataListコントロールもご覧ください。

ListBoxをオーバーライドしてRenderControl()メソッドを編集することもできますが、それは難しくなります。

代わりに、jqueryプラグインを使用することもできます。

http://jquery-plugins.net/tag/multi-column

はそれが役に立てば幸い:としてあなたはmulticolumnsリストボックスのためのさまざまな種類を見つけることができます。

0

私がすることによってこれを実現:あなたが手順「prc_GetData」を変更することができる場合、あなたはあなたのストアドプロシージャからNumberCol [スペース] TextColを選択し、DataTextFieldにその列をバインドすることができます

using (con) 
{ 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "prc_GetData"; 
    cmd.Parameters.Add(new OracleParameter("piCompany", OracleDbType.Char, "01", ParameterDirection.Input)); 
    cmd.Parameters.Add(new OracleParameter("poRecordset", OracleDbType.RefCursor, ParameterDirection.Output)); 
    cmd.Connection = con; 

    OracleDataAdapter da = new OracleDataAdapter(); 
    DataTable dt = new DataTable(); 

    con.Open(); 
    da.SelectCommand = cmd; 
    da.Fill(dt); 

    dt.Columns.Add("FORMAT_COL", typeof(String)); 

    string space = " "; 
    space = Server.HtmlDecode(space); 

    foreach (DataRow dr in dt.Rows) 
    { 
     dr["FORMAT_COL"] = dr["NumberCol"].ToString().PadLeft(5, Convert.ToChar(space)); 
    } 
    dt.Columns.Add("COMB_COL", typeof(String)); 
    dt.Columns["COMB_COL"].Expression = "FORMAT_COL + ' (' + TextCol + ')'"; 

    ListBox1.DataSource = dt; 
    ListBox1.DataValueField = "NumberCol"; 
    ListBox1.DataTextField = "COMB_COL"; 

    ListBox1.DataBind(); 
} 
関連する問題